2

私が行ったことは、openCVフレームワークに基づくチュートリアルのコードを使用したものです。ファイルからEdgeDetectionSample.cpp、コードをインポートします。

アーキテクチャarmv7の未定義のシンボル: "std :: __ 1 :: basic_string、std :: __ 1 :: allocator> :: basic_string(std :: __ 1 :: basic_string、std :: __ 1 :: allocator> const&)"、参照元: cv :: Exception :: Exception(int、std :: __ 1 :: basic_string、std :: __ 1 :: allocator> const&、std :: __ 1 :: basic_string、std :: __ 1 :: allocator> const&、std :: __ 1 :: basic_string、std :: __ 1 :: allocator> const&、int)in opencv2(system.o)cv :: Exception :: Exception(cv :: Exception const&)in opencv2(system.o) "std :: __ 1: :basic_string、std :: __ 1 :: allocator> ::〜basic_string() "、参照元:cv :: Mat :: create(int、int const *、int)in opencv2(matrix.o)__ZN2cvL7setSizeERNS_3MatEiPKiPKmb in opencv2(matrix .o)cv :: Mat :: Mat(cv :: Mat const&、cv :: Range const&、cv :: Range const&)in opencv2(matrix.o)cv :: Mat :: Mat(cv :: Mat const&、cv :: Range const *)in opencv2(matrix.o)cv :: Mat :: diag(int)const in opencv2( matrix.o)cv :: Mat :: Mat(_IplImage const *、bool)in opencv2(matrix.o)cv :: Mat :: reserved(unsigned long)in opencv2(matrix.o)... "std :: __1 :: basic_string、std :: __ 1 :: allocator> :: __ init(char const *、unsigned long) "、参照元:cv :: Mat :: create(int、int const *、int)in opencv2(matrix。 o)__ZN2cvL7setSizeERNS_3MatEiPKiPKmb in opencv2(matrix.o)cv :: Mat :: Mat(cv :: Mat const&、cv :: Range const&、cv :: Range const&)in opencv2(matrix.o)cv :: Mat :: Mat (cv :: Mat const&、cv :: Range const *)in opencv2(matrix.o)cv :: Mat :: diag(int)const in opencv2(matrix.o)cv :: Mat :: Mat(_IplImage const * 、bool)opencv2(matrix。o)opencv2(matrix.o)のcv :: Mat :: reserved(unsigned long)... "std :: _1 :: _vector_base_common :: __ throw_length_error()const "、参照元:std :: _ 1 :: vector、std :: __ 1 :: allocator >> :: _append(unsigned long)in opencv2(matrix.o)std :: _ 1 :: vector、std :: __ 1 :: allocator >> :: _append(unsigned long)in opencv2(matrix.o)std :: _ 1 :: vector、std :: __ 1 :: allocator >> :: _append (unsigned long)in opencv2(matrix.o)std :: _ 1 :: vector、std :: __ 1 :: allocator >> :: _append(unsigned long)in opencv2(matrix.o)std :: _ 1 :: vector、std :: __ 1 :: allocator >> :: _append(unsigned long)in opencv2(matrix.o)std :: _ 1 :: vector、std :: __ 1 :: allocator >> :: _append(unsigned long) opencv2(matrix.o)std::_で1 :: vector、std :: __ 1 :: allocator >> :: _append(unsigned long)in opencv2(matrix.o)... "std :: __ 1 :: basic_string、std :: __ 1 :: allocator> :: operator =(std :: __ 1 :: basic_string、std :: __ 1 :: allocator> const&) "、参照元:cv :: Exception :: formatMessage()in opencv2(system.o)ld:symbol(s)not foundアーキテクチャarmv7clangの場合:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください)

これで私を助けてください。私はそれらのエラーを読み取ることができません。

4

1 に答える 1

4

プロジェクトはに対してリンクされていますlibstd++ (GNU C++ standard library)が、最新のOpenCVはに対してリンクされlibc++ (LLVM C++ standard library with C++ 11 support)ているため、これを修正するには2つの方法があります。

  1. libc++に対してプロジェクトをリンクします
  2. libstd++を使用してOpenCVを再構築します。

プロジェクトをlibc++にリンクするには、->ビルド設定->「C ++標準ライブラリ」行を見つけて、そこでlibc++を選択します。

于 2013-02-05T11:00:56.207 に答える