読者です 読者をやめる 読者になる 読者になる

まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを

oF+iPhone トラブル1 何もコード書いてないのにエラー!エラー!エラー!

本家objective-Cフレームワークを追加する要領でライブラリを追加して泣いた話。
FreeImageのライブラリを追加するときは「デスティネーショングループのフォルダに項目をコピー」のチェックをしないこと!

「デスティネーショングループのフォルダに項目をコピー」のチェックをするかしないかは、事前に「data」「src」フォルダにファイルを入れているかいないかで決まりますが、ここでは別。


iPhoneOSを4.xにしちゃったから、oF本家のiPhone-FATがそのまま使えない。そこで以下の手順が必要になります。

0.ここからiPhone-FAT版をダウンロード。解凍して「書類」フォルダにでも置いておきます
1.ここからFreeImage_libs_iphoneOS40.zipをクリックしてダウンロード
2.書類フォルダに置いたiPhone-FAT版の中の「libs/FreeImage/lib/iphone/libFreeImage_iphone_universal.a」をゴミ箱へ
3.ダウンロードして解凍した「FreeImage」フォルダの中の「lib/iPhone/libfreeimage-iphone.a」と「libfreeimage-iphonesimulator.a」をコピー(コマンド+C)
4.書類フォルダに置いたiPhone-FAT版の中の「libs/FreeImage/lib/iphone」に3.の2つをペースト
(階層構造としては、iPhone-FAT版フォルダ/libs/FreeImage/lib/iphone/libfreeimage-iphone.aとlibfreeimage-iphonesimulator.a)
5.iPhone-FAT版フォルダ/appsフォルダの中に新しくフォルダを作って適当に名前をつける(mySketchとかmyAppsとか)
6.iPhone-FAT版フォルダ/apps/iPhoneExamples/emptyExampleをコピー、5.で作ったフォルダの中にペースト
7.6.でペーストしたemptyExampleフォルダの中の「iPhoneEmptyExample.xcodeproj」をダブルクリックしてXCodeを立ち上げる
8.XCodeでiPhoneEmptyExample(グループとファイルの真下のアイコン)/libs/core/core libraries/FreeImage/lib/iphone/とクリックしていって、libFreeImage_iphone_universal.aを探す
9.見つかったら「libFreeImage_iphone_universal.a」をクリックしてデリートキーを押して削除
10.iPhoneEmptyExample(グループとファイルの真下のアイコン)/libs/core/core libraries/FreeImage/lib/とフォルダの左の三角印をクリックしていって、iPhoneフォルダを右クリックし、「追加→既存のファイル」を選ぶ
11.ここで4.でペーストした「libfreeimage-iphone.a」と「libfreeimage-iphonesimulator.a」を選択し、追加する(iPhone-FAT版フォルダ/libs/FreeImage/lib/iphone/の中にある)
このときに「デスティネーショングループのフォルダに項目をコピー」のチェックをしないこと!
12.「iPhoneEmptyExample(グループとファイルの真下のアイコン)」をクリックし、コマンド+Iを押す
13.ビルドのタブをクリックし、「アーキテクチャ」→「ベースSDK」の設定を、「iPhoneデバイス 4.0」にする
14.「グループとファイル」の中の「ターゲット」の左の三角印をクリックすると「emptyExample」が出てくるので、それをクリックしてコマンド+Iを押す
15.13と同じくビルドのタブをクリックし、「アーキテクチャ」→「ベースSDK」の設定を、「iPhoneデバイス 4.0」にする
16.ビルドしてみる。エラーが出たらどこかが間違ってる。警告はとりあえず無視。

これでようやく準備が出来ました。要は最初からあるFreeImage/libの中身を新しいものと入れ替えて、ビルドの設定を4.0にしてあげれば良いだけです。
このときにFreeImageフォルダごと入れ替えるとエラーが出てダメっぽいです。
includeフォルダはそのままで、libフォルダだけ入れ替えたほうがいいみたいです。
私の環境ではFreeImageフォルダごと入れ替えたらエラーが出ました。