ラベル iPhone の投稿を表示しています。 すべての投稿を表示
ラベル iPhone の投稿を表示しています。 すべての投稿を表示

2010年9月30日木曜日

lib**.aファイルの参照

相変わらずsimulatorでテストしようとしても、以下のようなエラーが出るのでそれは放置。





これもいつかは直さないとな。。

ってことで、今回はあくまで実機向けのライブラリファイルへのリンク。

このdevice_libはどこから読みこんでいるんだ!っていうと、ここからです。



自分のいま作業を行っているプロジェクト内にあるopencv_deviceディレクトリ内にある、lib**.aを参照しています。これを参照すると実機で動くようになりました。

 (追記メモ)
ちなみに、ここでOpenCV2.1のライブラリファイルを参照すると、
ld: library not found for - lcv 2.1.0
とエラーが出てしまい、実機でもシミュレータでもビルドできなくなる。

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)を選択してひとまず終了。


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

( ゚Д゚)<おい待て

2010年9月15日水曜日

便利なサイトまとめ<随時追加>

<OpenCVをmac, iPhoneで使いたいとき> 

・yoshimiura niwa氏のサイトおよびソースコード
http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja
http://github.com/niw/iphone_opencv_test


・Nacho4d氏のサイト
http://nacho4d-nacho4d.blogspot.com/


<サンプルアプリをiPhone/iPod touchの実機でテストしたいとき>
キーチェーンだの証明書だの登録だのと色々めんどくさいんですね。。

・kentaro shimizu氏のサイト
http://kentaro-shimizu.com/lecture/iphone/step3.html

・タナカイチロウ氏のサイト
http://d.hatena.ne.jp/ichiro_tanaka/20090717/1247798246

・Jewel-mmo開発日記
http://dgames.jp/dan/permalink/20100312

・Sun Limited Mt.
http://www.syuhari.jp/blog/archives/973

<iPhoneアプリ作成での禁則事項>
意外と多くない?

http://fladdict.net/blog/2010/09/reject-list.html

iPhoneでOpenCV2.1

今回は、下に紹介するyosimasa niwa氏のblogを参考にしながら書く。

http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja

githubのdownloadリンクからzipをダウンロードして解凍してみる。
>>OpenCVTest.xcodeprojをXcodeで開いてビルドします。 デモアプリケーションがシミュレータと実機両方で動くことが確認できると思います。

でけた!(・∀・)

ということで、同氏のblog内で紹介されている4. 5. 6. の過程ではなく、違った方法でopencv2.1を使ったプロジェクトを実機でも、シミュレータでもビルドできるようにする方法を教わったので書いていきます。

niwa氏のこのプロジェクトからopencv_device、opencv_simulatorという2つのフォルダをコピーします。



そしてこのふたつのフォルダを自分の作ったプロジェクトの階層にペーストします。



次に、niwa氏のサンプル OpenCVTest.xcodeproj を実際に開く。
そして開いたプロジェクトの左窓のターゲット内のOpenCVtestをダブルクリックすると、以下のようなウインドウが開くので、ビルドを選択する。



そして、ヘッダ検索パスとライブラリ検索パスが上の選択領域のようになっていることを確認する。

次に自分が作成したプロジェクトを開く。
上と同様に、ターゲット内のオブジェクトをダブルクリックして、情報ウインドウを開き、ビルドを選択し、ヘッダ検索パスとライブラリ検索パスを見つける。
そして、niwa氏の設定をそのまま真似する!

具体的には、デフォルトのままではヘッダ検索パス、ライブラリ検索パスともに、数が足らないのでまずは以下のように


左下のアイコンをクリックして、ビルド設定条件を追加していく。

次にAny iPhone OS Deviceなのかsimulator なのかに気をつけながら設定を真似していく。



次に値を真似る。



$(SRCROOT)/opencv_device/include

などと書いてあるので、適宜コピペしていく。そうすると、以下のような見た目になるはず。


これでおk。