7

<ext/atomicity.h>OpenCVを組み込んだプロジェクトをビルドすると、コンパイラエラーが発生します。環境はiOSを対象としたXcode4.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拡張であり、LLVMlibc++標準ライブラリの一部ではありません。

プロジェクトのターゲット設定でlibstdc++ (GNU C++ standard library)、C++標準ライブラリ設定を選択します。

おそらく、atomicity.h要件は、opencvから除外されるか、LLVMlibc++互換の方法で実行される可能性があります。私はこれを調査しませんでしたが、これがどのように行われるかについて誰かが洞察を持っていれば興味があります。

于 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 に答える