OpenCVをホームディレクトリ以下にインストールする

はじめに

OpenCVをホームディレクトリ以下にインストールしてみたので、手順を書いておきます。
cmakeのときにディレクトリを指定するだけではなく、PKG_CONFIG_PATHとかLD_LIBRARY_PATHあたりのパスの設定も必要でしたというお話しです。

環境

手順

1. まずは依存ライブラリやツールをインストール

$ sudo apt-get install cmake pkg-config build-essential \
 libtbb2 libtbb-dev \
 libgtk2.0-0 libgtk2.0-dev \
 libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev libpngwriter0-dev libpngwriter0c2 \
 libjpeg62 libjpeg62-dev libjpeg-progs \
 zlib1g zlib1g-dev libjasper-dev libjasper-runtime libjasper1 \
 pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools \
 ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev \
 libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev \
 libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev \
 libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev \
 python-numpy libpython2.7 python python-dev \
 openexr libswscale0 libswscale-dev libeigen2-dev libopenexr-dev


2. OpenCVをダウンロードして解凍
http://sourceforge.net/projects/opencvlibrary/ からソースコードをダウンロードします。
今回はUnix版のOpenCV 2.3.1を使用しました。

解凍は普通に

$ tar xvf OpenCV-2.3.1.tar.bz2

でOKです。


2. CMAKE_INSTALL_PREFIXにインストールするパスを指定してcmake
OpenCVをインストールする場所をCMAKE_INSTALL_PREFIXで指定してcmakeを実行します。
今回は、

$HOME/local/opencvlibrary

にインストールするため、下記のように指定してcmakeを実行します。

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$HOME/local/opencvlibrary \
 -D BUILD_PYTHON_SUPPORT=ON -D WITH_TBB=ON -D WITH_GTK=ON \
 ./OpenCV-2.3.1

他のディレクトリにインストールする場合は、$HOME/local/opencvlibraryの部分を適宜読み替えてください。


3. ビルドしてインストール
そのまんまです。

$ make
$ make install


4. パスの設定
今回はホームディレクトリ以下にインストールするため、そのままではプログラムのビルド時にライブラリが見つからず、エラーとなってしまいます。そこで、パスの設定が必要となります。
OpenCVで必要なのは、

  • ビルド時に使用する pkg-config のパス (PKG_CONFIG_PATH)
  • 共有ライブラリのパス (LD_LIBRARY_PATH)

の2つです。
PKG_CONFIG_PATH には opencv.pc が配置されているディレクトリ([OpenCVをインストールしたディレクトリ]/lib/pkgconfig)、LD_LIBRARY_PATH は共有ライブラリが配置されているディレクトリ([OpenCVをインストールしたディレクトリ]/lib)を指定すればOKです。
今回はそれぞれ $HOME/local/opencvlibrary/lib/pkgconfig 、$HOME/local/opencvlibrary/lib となるので、.zshrcなど*1に下記のように設定を記述します。

# .zshrcに追記
PKG_CONFIG_PATH=$HOME/local/opencvlibrary/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH
LD_LIBRARY_PATH=$HOME/local/opencvlibrary/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH


最後に、シェルを再起動するか

$ source ~/.zshrc

で設定ファイルを再読込みすれば完了です。


5. 動作確認
OpenCVのサンプルコードの find_obj.cpp で動作確認をしてみます。

$ cd OpenCV-2.3.1/samples/c/
$ g++ find_obj.cpp -o find_obj `pkg-config --libs --cflags opencv`
$ ./find_obj

のようにコマンドを実行すれば、正常に動くはずです。

まとめ

そんなわけで、OpenCVをホームディレクトリ以下にインストールする手順でした。

*1:bashの人は.bashrcに。cshtcshの人は.cshrcだけど設定の書き方が異なるので注意。