2012-10-23 33 views
5

Tôi nhận được lỗi trình biên dịch phàn nàn về <ext/atomicity.h> khi xây dựng một dự án kết hợp OpenCV. Môi trường là Xcode 4.5 nhắm mục tiêu iOS. Nó biên dịch tốt cho mô phỏng nhưng không thành công khi xây dựng cho thiết bị. Dưới đây là nội dung báo lỗi:OpenCV vấn đề xây dựng, không thể tìm thấy ext/atomicity.h

/Users/Nick/projects/ios/opencv2.framework/Headers/core/operations.hpp:65:16: fatal error: 'ext/atomicity.h' file not found 
     #include <ext/atomicity.h> 

Tôi đang sử dụng opencv2.framework, builusing cmake, sử dụng các hướng dẫn here.

Trả lời

19

Theo mặc định XCode 4.5 tạo các dự án mới để xây dựng bằng cách sử dụng libc++ (LLVM C++ standard library with C++ 11 support). Nhưng OpenCV dự kiến ​​sẽ được xây dựng dựa trên GNU libstdc++ (GNU C++ standard library). <ext/atomicity.h> rõ ràng là một phần mở rộng của GNU và không phải là một phần của thư viện chuẩn LLVM libC++.

Trong cài đặt đích của dự án, chọn libstdc++ (GNU C++ standard library) cho cài đặt Thư viện chuẩn C++.

Rất có thể yêu cầu atomicity.h có thể là yếu tố ngoài opencv hoặc được thực hiện theo cách tương thích LLVM libC++. Tôi đã không khám phá điều này nhưng sẽ được quan tâm nếu có ai có cái nhìn sâu sắc về cách này có thể được thực hiện.

1

Tôi nghĩ đó là cách khác. Nhìn vào đầu ra của kịch bản python mà xây dựng opencv2.framework tôi có được điều này:

- C++ cờ (Hủy bỏ): -stdlib = libC++ -headerpad_max_install_names -fvisibility = ẩn -fvisibility-inlines-ẩn -fPIC - DNDEBUG -O3 [...]

rất có thể không phải là thứ bạn muốn. Vì vậy, bạn cần biên dịch khung với libstdC++ hoặc biên dịch ứng dụng của bạn với lib thích hợp. Từ những gì tôi thấy tôi gặp vấn đề khi xây dựng ứng dụng của mình với libC++ nhưng đó có thể là tôi.

Các vấn đề liên quan