OpenCV构建问题,找不到ext / atomicity.h

在构建包含OpenCV的项目时,我得到编译器错误抱怨 。 环境是针对iOS的Xcode 4.5。 它为模拟器编译良好,但在为设备构建时失败。 这是错误文本:

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

我正在使用opencv2.framework,使用cmake构建,使用此处的说明。

默认情况下,XCode 4.5使用libc++ (LLVM C++ standard library with C++ 11 support)生成要构建的新项目。 但是OpenCV期望是针对GNU libstdc++ (GNU C++ standard library)构建的。 显然是GNU扩展,不是LLVM libc ++标准库的一部分。

在项目的目标设置中,为C ++标准库设置选择libstdc++ (GNU C++ standard library)

很可能atomicity.h的要求可以用opencv来解决,或者以LLVM libc ++兼容的方式完成。 我没有探索这个,但如果有人知道如何做到这一点,我会感兴趣。

我认为这是相反的方式。 看一下构建opencv2.framework的python脚本的输出我得到了这个:

– C ++标志(发布): – stdlib = libc ++ -headerpad_max_install_names -fvisibility = hidden -fvisibility-inlines-hidden -fPIC -DNDEBUG -O3 […]

这很可能不是你想要的。 因此,您需要使用libstdc ++编译框架或使用适当的lib编译您的应用程序。 从我看到的,我在使用libc ++构建我的应用程序时会遇到问题,但这可能就是我。