2010年9月30日木曜日

iOS4.1+XCode(ver.3.2.4)でOpenCV2.1を使用する

 基本的には以前の日記にも書いたniwa氏のサイトを参考にした。
http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja


しかし、ここだけでは自分の設定が悪いのか、環境が悪いのかどうにもこうにも
動かないことがあったので、メモ代わりにいくつか書いておく。
(間違いがれば、随時訂正します。)

4.OpenCVにiOS SDK 4.xでビルドできるようにパッチを当ててください
% cd OpenCV-2.1.0
% patch -p1 < ../OpenCV-2.1.0.patch
 
とありますが、OpenCV-2.1.0.patchはniwa氏のサンプルをgitからダウンロードすると
そのディレクトリ内にあるので、それを自分の作業ディレクトリ内にコピー。
 
 
5.6. 実機向け、シミュレータむけのビルド〜
% ../opencv_cmake.sh Simulator ../OpenCV-2.1.0 とありますが、ここでも 
opencv_cmake.shを同様にコピーして使用する。
 
ここで、niwa氏のblogのコメント欄にも書いてあるが(残念ながら英語)、
 
AMさんのコメント 09/15, 2010

Thanks so much for your work and support on this project.

I'm
 running into a build issue and I wonder if you can help. Everything is 
fine until I'm at the building static Device library phase 
(../opencv_cmake.sh Device ../OpenCV-2.1.0
) and I get the error

'iOS SDK Version 4.0 is not found, please select iOS version you have'

-- I'm running XCode 3.2.4 with iOS 4.1 on Mac 10.6.4 -- (OpenCV 2.1.0 obviously).

Am I doing something wrong? 
Thanks again for your help. 
 
iOS4.1ではエラーが出てしまうのだ。実際自分も同じエラーが出て困った。
 
そこで、opencv_cmake.shをテキストエディタで開き、
 
4行目、24行目SDK VERSIONが4.0で指定されているところを手動で4.1に変えてしまう。
(念のため元ファイルはコピーしてバックアップしておきましょう。) 
 
 
 
こうすると上記のエラーが無くなり、ビルドは問題なく実行される。
さて、次に行きますか。
 
(しかし、書いてはいるものの、正解かどうかは自信が無いのであしからず。。。
やる時は自己責任でお願いします(>_<) )
 
プロジェクト”your_project”の情報→ビルドタブを見ます。
 
ここのヘッダ検索パスにもし、/usr/loacl/includeが含まれていればそれを削除。
 
次にターゲット ”your_project”の情報→ビルドを見ます。
 
 
ここで、 アクティブアーキテクチャのみをビルドにチェックを入れる。
さらに、他のリンカフラグに -lstdc++, -lz を追加する。
 
 
さー、あともうちょい頑張って書くぞっと( ゚Д゚)
 
このターゲットの情報、ビルドのタブの中から次に、検索パスを探す。


 ここで、以下のように設定する。


左下にあるこの設定プルからビルド設定条件を追加を選択して以下を足す。
 ※niwaさんのプロジェクト参照

ヘッダ検索パス
Any iOS Device Any Architecture $(SRCROOT)/opencv_device/include
Any iOS Simulator Any Architecture$(SRCROOT)/opencv_simulator/include

ライブラリ検索パス
$(inherited)
$(SRCROOT)/opencv_device/lib
Any iOS Device Any Architecture$(SRCROOT)/opencv_device/lib
Any iOS Simulator Any Architecture$(SRCROOT)/opencv_simulator/lib

そして、最後に、左上の構成プルダウンから、アクティブ(Debug)を選択してひとまず終了。


これでこの回はとりあえず終了して、次回に期待。

( ゚Д゚)<おい待て

0 件のコメント:

コメントを投稿