7

<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 <ext/atomicity.h>

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

4

2 回答 2

21

默认情况下,XCode 4.5 生成新项目以使用libc++ (LLVM C++ standard library with C++ 11 support). 但是 OpenCV 预计将针对 GNU 构建libstdc++ (GNU C++ standard library)<ext/atomicity.h>显然是 GNU 扩展,不是 LLVM libc++ 标准库的一部分。

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

atomicity.h 要求很可能会从 opencv 中排除,或者以其他方式以 LLVM libc++ 兼容的方式完成。我没有对此进行探索,但如果有人对如何做到这一点有所了解,我会很感兴趣。

于 2012-10-23T19:21:58.970 回答
1

我认为情况正好相反。查看构建 opencv2.framework 的 python 脚本的输出,我得到了这个:

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

这很可能不是您想要的。因此,您需要使用 libstdc++ 编译框架或使用正确的 lib 编译您的应用程序。据我所知,我在使用 libc++ 构建我的应用程序时遇到了问题,但那可能是我。

于 2012-11-20T01:53:22.447 回答