Ubuntu 12.04 で openCV を適切にリンクするのにイライラするほど長い時間を費やし、学んだことを他の人の利益のために共有しようと考えました。
OpenCV は、Ubuntu リポジトリで次のように利用できるようになりました。
sudo apt-get install libopencv-dev
これは素晴らしいことですが、このバージョンの opencv ではライブラリの命名規則が異なると思います (間違っていたら訂正してください)。主な違いは、C++ ではインクルード行を読み取る必要があることです。
#include "opencv2/opencv.hpp"
これにより、コードはオブジェクトにコンパイルされますが、リンクされません。もう 1 つの違いは、静的ライブラリの名前もlibcv* から libopencv*に変更されたことです。たとえば、バイナリは次の場所にあります。
/usr/lib/libopencv_core.so
/usr/lib/libopencv_highgui.so
.
.
.
これを修正するには、コンパイラ コマンドを
g++ main.cpp -lopencv_core -lopencv_highgui ...
またはCMakeで
target_link_libraries(main opencv_core opencv_highgui ...)
これが役立つことを願っています。私より詳しい人がいたら、ここで何が起こっているのか知りたいです。
-マイク