Leopard に iPhone の toolchain をインストール
Leopardをインストールしたものの、当然のごとく処理系に依存するiPhoneのtoolchainが使えなくなってしまいました。
試行錯誤した結果なんとかコンパイルできるまでになったので一応書いておきます。
すでにtoolchainを使っている人向け&メモなのでかなり端折ってあります。
環境構築
1. XCode 3.0 をインストール。(Leopard のインストールDVDに収録されています。)
2. Tigerのときようにtoolchain v05をインストール。(/usrにあるtoolchainとする)
3. Macportsをインストール。(10.4用を使います。)
4. Macports版のtoolchainをインストール。(/optにあるtoolchainとする)
$ sudo port install arm-apple-darwin-binutils arm-apple-darwin-cc arm-apple-darwin-runtime
5. /opt/local/arm-apple-darwin/heavenly/にiPhoneのファイルシステムをコピーしろといわれるので、すでに2.でコピーしたもののリンクを張ればOK。
$ sudo ln -s /usr/local/arm-apple-darwin/heavenly /opt/local/arm-apple-darwin/heavenly
6. もう一度4. を実行。
7. Developerフォルダにasのリンクを張る。
$ cd /Developer/usr/libexec/gcc/darwin
$ sudo mkdir arm
$ sudo ln -s /opt/local/arm-apple-darwin/bin/as arm/as
specsの更新
1. ここから、"this specs file"をダウンロードします。
2. /optへインストール。
$ cd /opt/local/arm-apple-darwin/etc
$ sudo mv arm-cc-specs arm-cc-specs.old
↑古いものをバックアップ
$ sudo cp ~/Downloads/arm-cc-specs .
ヘッダファイルのインストール
1. iphone-devからヘッダをもらう
$ svn checkout http://iphone-dev.googlecode.com/svn/trunk/include iphone-dev/include
2. インストール。
$ cd iphone-dev/include
$ ./configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.4u.sdk
$ sudo bash install-headers.sh
All Done.と出ればインストール成功。
3. インストール先は、/usr/local/arm-apple-darwin/includeです。
ここに置いておいても見つけてくれないので、リンクを張ります。
$ sudo ln -s /usr/local/arm-apple-darwin/include /usr/local/arm-apple-darwin/arm-apple-darwin/include
↑/usrにある用
$ sudo ln -s /usr/local/arm-apple-darwin/include /opt/local/arm-apple-darwin/include
↑/optにある用
以上で、
/usr/local/arm-apple-darwin/
/opt/local/arm-apple-darwin/
に環境がインストールされます。
Makefile を作る
いつも通りな感じで問題ないようですが、上手く行かなかったりする場合はCC(コンパイラ)とLD(リンカ)の環境設定をいじってみるといいと思います。
/usrのCC・LDと/optのCC・LD、さらにCCでLD(リンク)を行うことがあるので組み合わせがかなりあります。
また、/usrと/optではコンパラのファイル名が微妙に違うので注意。
コンパイラとリンカに/optのccを使う
CC=/opt/local/arm-apple-darwin/bin/cc
LD=$(CC)
/usr側はgccとなるので注意
CC=/usr/local/arm-apple-darwin/bin/gcc
LD=$(CC)
コンパイラとリンカに/optのccとldを使う
CC=/opt/local/arm-apple-darwin/bin/cc
LD=/opt/local/arm-apple-darwin/bin/ld
/optのldを使うにはオプションが必要なので注意。
/opt/local/arm-apple-darwin/bin/ld -lobjc -framework CoreFoundation -framework Foundation -framework UIKit -framework LayerKit -syslibroot /opt/local/arm-apple-darwin/heavenly /opt/local/arm-apple-darwin/csu/crt1.o -lSystem -lgcc_s_v6.1 -lm -L/opt/local/arm-apple-darwin/lib -larmfp -o Hello hello.o HelloApplication.o
XCode 3.0 について
今まで使ってきたUIKit用のテンプレートは使えない(一覧に表示されない)のですでにあるものを変更するしかありません。
XCode用のMakefileは次のように変更します。
CC=/usr/local/arm-apple-darwin/bin/gcc
LD=/opt/local/arm-apple-darwin/bin/ld
LDFLAGS= -lobjc -framework CoreFoundation
-framework Foundation
-framework CoreGraphics
-framework GraphicsServices
-framework CoreSurface
-framework UIKit
-framework LayerKit
-framework WebCore
-syslibroot /opt/local/arm-apple-darwin/heavenly /opt/local/arm-apple-darwin/csu/crt1.o
-lSystem -lgcc_s_v6.1 -lm -L/opt/local/arm-apple-darwin/lib -larmfp
参考資料
古いですが、/opt版のtoolchain - iPhone - Celso Martinho
iphone-dev - Google Code
コメント
承認待ちコメント
このコメントは管理者の承認待ちです
承認待ちコメント
このコメントは管理者の承認待ちです
承認待ちコメント
このコメントは管理者の承認待ちです
承認待ちコメント
このコメントは管理者の承認待ちです
承認待ちコメント
このコメントは管理者の承認待ちです
コメントの投稿
トラックバック
http://novi.dtiblog.com/tb.php/165-af1fb8e1

