Leopardでtoolchain 0.3

iPhoneが1.1.1、Mac OS Xが10.5となれば、iPhoneの開発環境も最新版のtoolchain 0.3でなきゃね〜ってことでセットアップしてみました。ただし、toolchain 0.2ならワンタッチ・インストーラがあるので簡単ですが、現時点では自分でtoolchain 0.3をビルドしなければなりません。軟弱者にとってはトホホです。しかも、toolchain 0.2のビルドでは丸3日間ハマリまくったので、イヤな予感(もしくはトラウマ)に満ち溢れていました。

ところが、実際には0.3のビルドは、自分でも驚くくらいスムースでした。総作業時間は3時間くらいだったので、24倍速ですね。3時間と言っても、その大半はソースコードのダウンロード(svn)とコンパイルの時間なので、ターミナルを叩いている時間はちょっとだけです。

iphone-toolchain03.jpg

具体的な手順は、HOWTO build the toolchainに載っています。Leopardでは上手く行かない箇所が2点ありましたが、Issuesにおいて既に解決済みでした。今後のアップデートによって、問題が解消するかもしれませんが、今回のトラブル・シューティングを書いておきます。

【トラブルその1】Build odcctoolsのmakeで、

..//include/libkern/machine/OSByteOrder.h:51: error: redefinition of ‘_OSSwapInt16’

などのエラーが出る。

【解決方法】ターミナルで、

export INCPRIVEXT=”-isysroot /Developer/SDKs/MacOSX10.4u.sdk”

と環境変数を設定した後、makeする。(Issue 31より)

【トラブルその2】Configure and make LLVM-GCC.の
make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svnで、

/usr/local/bin/arm-apple-darwin-ld: can’t locate file for: -ldylib1.10.5.o

というエラーが出る。

【解決方法】llvm-gcc-4.0-iphone/configureをテキスト・エディタで開き、4970行目の、

FLAGS_FOR_TARGET=

FLAGS_FOR_TARGET=${FLAGS_FOR_TARGET-}

と変更し、ファイル保存した後、configureする。
さらに、ターミナルで、

export FLAGS_FOR_TARGET=”-mmacosx-version-min=10.1″

と環境変数を設定した後、makeする。(Issue 92より)

残るはMakefileの書き換えで、少々試行錯誤した結果、次のような設定でHelloWorldのビルドができるようになりました。これが必要十分にして最適解かどうかは分からないんだけどね。

CC=/usr/local/bin/arm-apple-darwin-gcc
CXX=/usr/local/bin/arm-apple-darwin-g++
CFLAGS=-fsigned-char
LDFLAGS=-lobjc -ObjC -mmacosx-version-min=10.1 -framework CoreFoundation -framework Foundation -framework UIKit -framework LayerKit -framework CoreGraphics -framework GraphicsServices -framework Celestial -framework MusicLibrary
LD=$(CC)

といったあたりで力尽きたので、今日はここまで。さらには、Xcode 3.0用のプロジェクト化なども必要ですが、そのうちね!…ってか、どなたか作ってください。

【追記】Leopardでのtoolchain 0.3の修正版ビルド方法が公開されました。上記のトラルブ・シューティング2点が反映されているようです。これが1日早く公開されてたら、私のビルド時間は1時間くらい短縮できたんじゃないかな(笑)。いずれ、大元の説明も更新されるでしょうね。

Leopardでtoolchain 0.3” に1件のフィードバックがあります

  1. ピンバック: Xcode 3.0/toolchain 0.3用テンプレート « akalogue

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です