今考えている開発対象はiOSがメインですが、検証はMacでできた方がいいかな?というわけで、Mac版でのopenFrameworksでもOpenCVを入れてみました。
OpenCVのインストール
自前でソースからビルドしてみようと思ったのですが、homebrewでインストールしてみます。あまり時間がなかったので。openFrameworksが32bitなのでビルド設定として、32bitを追加しました。
$ brew tap homebrew/science $ brew install opencv3 --32-bit --with-ffmpeg --with-gstreamer --with-jasper --with-openni --with-python3
インストールに成功すると、/usr/local/Cellar/opencv3/3.0.0にライブラリが入ってきます。こいつをopenFrameworksから使えれば、環境構築としては、完了です。
openFrameworksでOpenCV
openFrameworksから使うといっても、通常のXcodeプロジェクトと同じです。C++万歳。
通常通り、openFrameworksのProjectGeneratorを使ってプロジェクトを作成します。次に、Search Pathsを編集。Header Search Pathsに、/usr/local/Cellar/opencv3を追加、recursiveに変更しておきます。
次にライブラリファイルを追加します。Build Phasesを開き、LinkBinary With Librariesを表示、FinderでOpenCVのdylibをドラッグアンドドロップで追加。
Finderでusr/を開きたいときは、ターミナルから以下のコマンドで開けます。
$ open /usr
で、ビルドすればおしまい。。のはずが...
こんなエラーが出た。
file was built for x86_64 which is not the architecture being linked (i386)
えー。と思って、fileコマンドで確認してみた。
$ file libopencv_video.3.0.0.dylib libopencv_video.3.0.0.dylib: Mach-O 64-bit dynamically linked shared library x86_64
あれ?64bit...
INSTALL_RECEIPT.jsonを確認しても、ちゃんと32bitの指定になっているみたいなんだけど。何度やっても同じ、ついでにOpenCV 2.4.9を--32-bitを指定してビルドしてみたけど結果は変わらず。
iOSのときと同じようにソースからビルドしないとダメ?hellkite.hatenablog.com
まぁ、今回に限らずopenFrameworksが64bitに対応していないっぽいのは結構きつい。早くopenFrameworksが64bit化してくれないかしら。