Ubuntu
OpenCV

OpenCV開発 コンパイルから動作確認まで

More than 4 years have passed since last update.

はじめに

OpenCVのインストール後に、web上に上がっているサンプルコードがコンパイルできずにハマったので書きました。インストール後にgcc/g++でうまくコンパイルできない人・動作確認をできずに困っている人が対象読者です。インストール手順は詳しく書きませんので、ご了承下さい。

インストール

$ git clone git://github.com/Itseez/opencv.git
$ cd opencv/
$ sudo cmake .
$ sudo make
$ sudo make install
$ sudo ldconfig

必要なライブラリはググれば出まので、調べてみて下さい。

コンパイル

通らない

$ g++ `pkg-config --libs opencv` `pkg-config --cflags opencv` sample.cpp

ググると上記のようなオプションが示されているのですが、コンパイルが通らず下記のようなエラーが出ます。

/tmp/ccBfZH07.o: In function `main':
sample.cpp:(.text+0x9e): undefined reference to `cv::imread(cv::String const&, int)'
sample.cpp:(.text+0xee): undefined reference to `cv::HOGDescriptor::getDefaultPeopleDetector()'
#以下略

解決策

CMakeLists.txtやら散々調べましたが、単純に オプションの渡し方 が違ったみたいです。OpenCVのディレクトリ内opencv/samples/c/build_all.shを参考にするとオプションの書き方(エイリアス)は以下になるようです。

.bashrc
alias gcv='gcvgcv'
function gcvgcv() {
    g++ -ggdb `pkg-config --cflags opencv` $@ `pkg-config --libs opencv`
}