2012-04-17 5 views
1

私はOpenCVでCコードをコンパイルしようとしています。私は、私は次のフラグOpenCVでCでコンパイルしようとする問題

-L/usr/lib 
-lpthread 
-lrt 
-l 
-I/usr/local/include/opencv 
-I/usr/local/include 
-L/usr/local/lib 
-lopencv_core 
-lopencv_imgproc 
-lopencv_highgui 
-lopencv_ml 
-lopencv_video 
-lopencv_features2d 
-lopencv_calib3d 
-lopencv_objdetect 
-lopencv_contrib 
-lopencv_legacy 
-lopencv_flann 

を使用しているコンパイルしようと、私はこのエラーを取得する場合:

cannot find -lopencv_core 
cannot find -lopencv_imgproc 
cannot find -lopencv_flann 

マイpkg-config--cflagsのOpenCV:

-I/usr/local/include/opencv -I/usr/local/include 

pkg-config--libs OpenCVの:

-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 

何が間違っていますか? ありがとうございます。

+0

opencv_core/flann .aファイルが/ usr/libまたは/ usr/local/libにあることを確認したとしますか? – Diziet

+0

私は/ usr/local/libにopencv_core/flann .soファイルを持っています – edsonlp1

答えて

2

コンパイル行は、静的ライブラリにリンクしているので、.so(.sharedオブジェクト)ではなく.aファイルが必要です。参照:

Linking to static/dynamic libraries.

多分役立つ情報のため。 linuxが指向していますが、それはLinux特有のものではありません。コンパイラフラグは同じかもしれませんが、gccを使用していてllvmを使用していないと仮定しています。

+0

私はOpenCVを使ってC言語で簡単なプログラムを作っています。おかしいです。私は.aファイルを追加していません – edsonlp1

+0

バイナリにリンクされたopencv .soファイルを表示すると仮定して動作するコンパイルによって、 – Diziet

関連する問題