2012-10-23 19 views
5

OpenCVを組み込んだプロジェクトをビルドするときに、コンパイラエラー<ext/atomicity.h>について不平を言います。環境はiOSをターゲットとするXcode 4.5です。シミュレータは正常にコンパイルされますが、デバイスの構築時には失敗します。ここでエラーテキストです:私は指示hereを使用して、cmakeのをbuilusing、opencv2.frameworkを使用していOpenCVビルドの問題、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> 

答えて

19

デフォルトでは、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++標準ライブラリの一部ではありません。

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

atomicity.hの要件は、opencvから取り除かれるか、そうでなければLLVM libC++互換の方法で行われる可能性があります。私はこれを探っていませんでしたが、誰かがこれをどうやってできるかについての洞察があれば興味があります。

1

私はそれが逆だと思います。私はこの取得opencv2.framework構築するPythonスクリプトの出力を見てみると:

を - C++のフラグ(リリース):-stdlib = libcの++ -headerpad_max_install_names -fvisibility =隠し-fvisibility-インライン-隠さ-fPIC - DNDEBUG -O3 [...]

あなたが望むものではない可能性が最も高いです。したがって、libstdC++でフレームワークをコンパイルするか、適切なlibでアプリケーションをコンパイルする必要があります。私が見ていることから、libC++で自分のアプリケーションを構築するときに問題が発生しますが、それは私かもしれません。

関連する問題