openframeworks for iPhone をSDK4で動かす

2010年07月10日 渡部隼人
 
スーパーソフトウエア > テクノロジートレンド > iPhone > openframeworks for iPhone をSDK4で動かす
 

SDK4でopenframeworksを動作させることができたので、メモ書き程度に残しておきます。

参考にしたのは、openframeworksのフォーラムです。


openframeworks フォーラム
参考にした記事
なお、フォーラムの記事に合わせて試行錯誤しながら環境を構築したので、不要な作業、足りない作業があるかもしれません。
又、公式にリリースされていないライブラリを使っているので、その点ご容赦下さい。


まず単純にSDKをアップデートして(プロジェクトの設定でSDKを選択するのを忘れないように)ビルドをすると、
error: Invalid DWARF in (プロジェクトを置いているディレクトリ)/libs/FreeImage/lib/iphone/libFreeImage_iphone_universal.a: DIE 0x000016a6 has multiple AT_byte_size attributes.


こんなエラーがでると思います。
FreeImageというライブラリがうまく動作しないようですね。


*****結論から言うと、ここから暫くの作業は不要ですので参考までに*****
ということで、参考記事に記載されているように、FreeImageのソースコードとMakefileをつかってライブラリをメイクし直します。


「make -f Makefile.iphone」
少し時間がかかりますが、「FreeImage.h」「libfreeimage-iphone.a」「libfreeimage-iphonesimulator.a」が出力されます。


同名のファイルが、(openframeworksのプロジェクト)/lib/FreeImage にあるので上書きしてやります。
この状態でビルドすると、「157: error: conflicting declaration 'typedef int32_t BOOL'」といったエラーが大量にでると思います。
新しく出力された「FreeImage.h」はBOOL等の型宣言がおかしいようなので元の「FreeImage.h」と見比べて、修正してやりましょう。


それではビルド+実行してみます。
導入に問題がなければ、うまく実行出来ると思います。


さて、アプリケーションの構成によってはこの状態でも問題ありません。しかし一点ofImageを使って画像を表示している場合は実際に動かしてみるとわかりますが、色相が変(青っぽくなる)になってしまいます。
赤と青のカラーチャンネルがおかしくなっているようですね。
*****参考ここまで*****


最終結論をいうと、参考記事内「dupin」さんがアップロードしているライブラリファイルを導入しましょう。
私の環境ではうまく動作させることが出来ています。


ご質問があれば、メールで問い合わせいただければお答えできると思います。

渡部隼人渡部隼人 - システムコンサルタント
「おもしろきこともなき世をおもしろく」いわゆるIT業界はそういうものだと思っています。こんなことが出来たらいいな!という仮想が、現実にリンクする面白い業界です。紆余曲折を経てそんな業界でお世話になっているアフタヌーンエンジニアのブログです。