Mac OSX Lion で SimpleOpenNi をビルドする
SimpleOpenNI のソースには OSX用のビルドスクリプト buildOsx.sh が付属するが、Lion に対応してないのかなかなかの難物。
OpenNI をインストール
こちらを参考に。
OpenNIをHomebrewでインストール http://www.cyber.t.u-tokyo.ac.jp/~take/blog/kinect/install-openni-with-homebrew.html
依存パッケージをインストールする
Homebrew で eigen, swig, boost をインストールする。
ただし、単純に brew install xx...ではすまない。
eigen のインストール
eigen のインストールに失敗する場合は、gfortran をインストールしてから再度インストールする。
% brew install gfortran % brew install eigen
boost のインストール
SimpleOpenNI は libboost_thread-mt の i386 バイナリを利用するため、--universal オプションを追加すること。
% brew install boost --universal
通常のビルドに比べるとやたら時間がかかる。
swig のダウングレード
swigのバージョンが 2.0.7 だとスクリプトが Segmentation fault を起こして中断してしまう。
そこで、swig が入っている場合一度削除して再インストールする。
% brew unlilnk swig
brew で旧バージョンのswig をインストールするためには、versions コマンドを使う。
% brew versions swig 2.0.6 git checkout 9966773 /usr/local/Library/Formula/swig.rb 2.0.4 git checkout 0d8d92b /usr/local/Library/Formula/swig.rb fatal: Not a valid object name f5779b8:Library/Formula/swig.rb
ずらずらと出るメッセージは、Homebrew が対応しているバージョンと、そのバージョンを利用するためのコマンドの一覧である。
ここでは2.0.6 にダウングレードする。
% git checkout 9966773 /usr/local/Library/Formula/swig.rb % brew install swig
CMakeLists.txt の修正
boost_thread.a を使う設定になっているが、これを boost_thread-mt.a に修正する。
=================================================================== --- CMakeLists.txt (revision 426) +++ CMakeLists.txt (working copy) @@ -67,7 +67,7 @@ IF(APPLE) # osx - set(Boost_LIBRARIES "boost_thread.a") + set(Boost_LIBRARIES "boost_thread-mt.a") ELSEIF(UNIX) # unix/linux,shared libs of boost should be installed set(Boost_LIBRARIES "boost_thread.a")
buildOsx.sh の修正
OPEN_NI_INCLUDE と XN_NITE_INCLUDE は、/usr/local/include にある。
=================================================================== --- buildOsx.sh (revision 426) +++ buildOsx.sh (working copy) @@ -30,9 +30,9 @@ echo "--- generate cmake ---" cmake -DCMAKE_BUILD_TYPE=Release \ - -DOPEN_NI_INCLUDE=/usr/include/ni/ \ + -DOPEN_NI_INCLUDE=/usr/local/include/ \ -DOPEN_NI_LIB=/usr/lib/ \ - -DXN_NITE_INCLUDE=/usr/include/nite/ \ + -DXN_NITE_INCLUDE=/usr/local/include/ \ -DXN_NITE_LIB=/usr/lib/ \ -DEIGEN3D_INCLUDE=/usr/local/include/eigen3/ \ -DP5_JAR=/Applications/Processing.app/Contents/Resources/Java/core.jar \