danglingfarpointer's memoization

仕事周りでの気付き、メモ、愚痴などを書いていきます。

OpenCV 2.4.8インストール

開発の都合でCentOS 5.9にOpenCV 2.4.8を入れることとなったので、手順をメモ。

前提

  • FFmpegは扱わない
  • インストール場所は/home/vagrant/opencv
  • 静的ライブラリとしてインストール

OpenCV取得

wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.8/opencv-2.4.8.zip/download
unzip opencv-2.4.8.zip
cd opencv-2.4.8

cmakeファイルの編集

vi  cmake/cl2cpp.cmake

50行目付近の

string(MD5 hash "${lines}")

となっている場所を#コメントアウト。これをやらないとmakeが失敗。

以下のリンクによると、cmake 2.8以降をインストールすればこの問題を回避できるらしい。しかし面倒なので上の方法を取った。

参考: http://answers.opencv.org/question/24095/building-opencv-247-on-centos-6/

cmake実行

mkdir release
cd release
cmake \
    -DCMAKE_BUILD_TYPE=RELEASE \
    -DCMAKE_INSTALL_PREFIX=/home/vagrant/opencv \
    -DWITH_FFMPEG=OFF \
    -DBUILD_PERF_TESTS=OFF \
    -DBUILD_TESTS=OFF \
    -DBUILD_ZLIB=ON \
    -DBUILD_TIFF=ON \
    -DBUILD_JASPER=ON \
    -DBUILD_JPEG=ON \
    -DBUILD_PNG=ON \
    -DBUILD_OPENEXR=ON \
    -DBUILD_SHARED_LIBS=OFF \
    ..

makeの編集

vi modules/features2d/CMakeFiles/opencv_features2d.dir/build.make 

freak.cppで検索して、ターゲットがfreak.cpp.oであるルールのコマンドで、

... /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) ...

となっている箇所を、

... /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -O0 ...

と編集(-O0を加える). これをやらないとmakeで失敗。

参考: http://stackoverflow.com/questions/13580485/error-in-making-opencv

make, make install

make
make install

もっとスマートにできるだろうか・・・でもタイムリミット。とりあえずインストールはできたのでよしとする。

プレインストールされているパッケージが増えると、別の箇所で躓くかもしれない。