2016-08-25 12 views
0

OpenCVを正しくインストールしましたが、プロジェクトを作成する際にコードブロックがオプションとして「OpenCVのプロジェクト」を提供していますし、私はOpenCVのキーワードで入力を開始するたびに、それがキーワードを拡張し、提案します。OpenCV "cv :: imread"など未定義のリファレンスC++

私の問題は、私はそれを構築しようとしたとき、私は

を得るということです
undefined reference to `cv::imread(std::__cxxll::basic_string<char, std::char_traits<ch.. 

そして、それはすべてのOpenCVの機能のためにこれを繰り返します。

私は、これはアーカイブファイルとは何かを持っていることと、私が入力したときに、私は結果を提供するだろうとどこかで読ん:端子に

pkg-config opencv --libs 

。出力は:

-L/usr/local/lib -lopencv_calib3d -lopencv_contrib -lopencv_core 
-lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui 
-lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree 
-lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching 
-lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -latomic 
-ltbb -lGL -lGLU -lrt -lpthread -lm -ldl 

この問題を解決するにはどうすればよいですか?ファイルを何らかの方法で編集する必要がありますか?事前に非常に

おかげで

+0

これは、リンカエラーのように見えます。コードブロックプロジェクタにopencvライブラリを提供しましたか? – NGI

答えて

2

あなたのコードがのstd :: __ cxx11名前空間を使用して、標準ライブラリでコンパイルされています。つまり、以前のバージョンとは異なるABIを持つg ++ 5+をおそらく使用しています。あなたがインストールしたopencvライブラリはおそらく古いABIなので、互換性はありません。

あなた自身でopencvライブラリをコンパイルすることも、あなたが持っているライブラリのABIと一致する以前のコンパイラを使うことも、古いABIを使うようにコンパイラを設定することもできます。

あなたはG ++ 5を使用している場合には、前にマクロ_GLIBCXX_USE_CXX11_ABIを使用するとstdのLIBSでき

#define _GLIBCXX_USE_CXX11_ABI 0 
関連する問題