gavangavanの日記

書きたいことを書いております。

OpenNI2とNiTE2をMountain Lionで使うためのTips

OpenNI2とNiTE2をMountain LionをいれたMBAで動かしたのだが、バイナリ配布された動的リンクライブラリをつかって自前のアプリを開発する場合に、どうにも実行時にライブラリがリンクされる苦労する。

OpenNI2とNiTE2の配布ファイルをそれぞれ展開すると直下にRedistというフォルダができる。こいつが再配布用のRuntimeバイナリであるが、開発したアプリからこいつを呼び出すにはアプリのバイナリがあるフォルダの直下に、libOpenNI2.dylibとlibNiTE2.dylibをコピーし、さらにRedist/OpenNI2とRedist/NiTE2をまるごとコピーする必要がある。

動的リンクなので、コンパイル時に-rpathとか、実行時にDYLD_LIBRARY_PATHでごまかそうとしたのだがどうにもうまくいかない。とくにNiTE2のほうはスケルトン推定やジェスチャ認識に使うデータファイルが必須で、こいつがRedistの中にあり、それをアプリバイナリ直下からの参照ができないといけない。

しかしよくよく調べてみると、アプリバイナリのあるフォルダ直下、ではなく、カレントディレクトリの直下にないといけないようだ。つまり、どこかにアプリをインストールして、そこにパスを通してコマンドのように使おうとしたら動かない。これは非常に不便だ。環境設定をもう少し詰めればちゃんとできるのかもしれないが今のところ不明である。今日はこれで数時間使ってしまった…。