3

公式のopencv.orgのフレームワーク2.4.3を使用した後、iOS用のxcodeでアプリケーションをコンパイルするときに、以下の問題に直面しています。手がかりはありますか?

ld: warning: directory not found for option '-F/Users/Anas/Downloads/ocr-text-extraction-master  /n/trunk/StaticImagesFaceDetectionSample/../../ocv.build/ios'
Undefined symbols for architecture armv7:
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::compare(char const*) const", referenced from:
  cv::CascadeClassifier::Data::read(cv::FileNode const&) in opencv2(cascadedetect.o)
 ...
 ...

 ...

 cv::Exception::formatMessage() in opencv2(system.o)
 ld: symbol(s) not found for architecture armv7
 clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

2 に答える 2

0

OpenCVが提供するユニバーサルiOSフレームワークを使用していますか?

そうでない場合は、 iOS用のOpenCVを使用することを強くお勧めします。ダウンロードしてiOSプロジェクトにドロップし、インポートを追加するだけです。

これを内部に追加してmyApp-Prefix.pch、すべてのC ++互換ソースファイル(.mm.cpp)にOpenCVをインポートすることもできます。

#ifdef __cplusplus
  #import <opencv2/opencv.hpp>
#endif

編集

また、それopencv2.frameworkが構築しているターゲットに追加されていることを確認してください。ターゲットに追加するには、選択した状態でXcode(ユーティリティ)の右側のメニューを開きますopencv2.framework。「ターゲットメンバーシップ」と呼ばれるファイルインスペクターのドロップダウンがあります。これを選択すると、フレームワークがターゲットに追加されます。

編集2

確認するもう1つのことは、使用する適切なヘッダーをインポートすることですcv::CascadeClassifier

#import <opencv2/imgproc/imgproc_c.h>
#import <opencv2/objdetect/objdetect.hpp>
于 2012-11-27T09:20:21.420 に答える
0

この問題には非常に単純な解決策があり、私も何時間もつまずきました。修正は、ViewControllerまたはOpenCVライブラリを使用しているiOSビューが.Mファイルではなく.MMファイルであることを確認することです。これにより、ファイルはC ++ファイルとして扱われます(これにより、次のプリコンパイル済みヘッダーディレクティブが起動し、すべてのリンカーエラーが表示されなくなります。

#ifdef __cplusplus
  #import <opencv2/opencv.hpp>
#endif
于 2013-08-28T06:23:11.540 に答える