Leopard中搭建iPhone toolchain环境并整合到XCode是本文要介绍的内容,网上搭建iPhone开放开发环境的文章已经不少了。本文参考了不少资料,详细说明如何成功在Leopard中搭建一个完整的开发环境并整合XCode进行iPhone源生程序的开发。
在XCode中整合toolchain开发环境和苹果官方的iPhone SDK并不冲突,你可以在同一个XCode中既建立toolchain的开发工程,也可以建立官方的iPhone SDK工程。本文在Leopard 10.5.2,XCode 3.1 Beta 3(随iPhone SDK Beta3提供),iPhone OS 1.1.4测试通过。
准备工作
请确认操作系统为Leopard 10.5.2。
请确认XCode已经安装。最好安装最新的官方XCode 3.1 Beta。手中最好是有iPhone或者iPod Touch,已经jailbreak。获取toolchain源码
打开一个terminal窗口,随便建立一个目录
mkdir
iphoneenv
cd
iphoneenv
- 1.
- 2.
- 3.
- 4.
后面的操作都在这个目录中进行,只需复制下文文字框中的内容,贴到terminal窗口执行即可。
获取源码
svn
co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn -r
42498
pushd llvm-svn
./configure –enable-optimized
make
ENABLE_OPTIMIZED=1
sudo make install
LLVMOBJDIR=`pwd`
popd
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
获取iphone-dev SVN代码库
svn checkout http://iphone-dev.googlecode.com/svn/trunk/
iphone-dev
pushd iphone-dev
- 1.
- 2.
- 3.
建立一个保存toolchain的目录。
sudo mkdir
/usr/local/arm-apple-darwin
编译odcctools
mkdir -p
build/odcctools
pushd build/odcctools
../../odcctools/configure
–target=arm-apple-darwin –disable-ld64
export INCPRIVEXT="-isysroot
/Developer/SDKs/MacOSX10.4u.sdk"
make
sudo make install
popd
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
获取iPhone中的框架和头文件
获取这个iPhone的镜像有很多办法,这里介绍几种:
最省事的办法(如果手头没有iPhone或是没有wi-fi):在google搜索iphone_image,找到了就直接下载,解压缩。麻烦点的办法(手头有jailbreak并安装了installer的iPhone或者iPod Touch):
如果你家里或者单位有wi-fi,而且iPhone已经连上w-ifi,直接在iPhone的Installer里找到BSD Subsystem和OpenSSH并安装,然后用scp把iPhone里面从根目录开始的所有子目录的所有的文件拷贝出来。
或者在installer里安装AFPd,然后用Finder打开afp://你的iphone的ip地址,用户名用root, 密码用alpine,把里面的所有文件直接拽出来。
详细方法不介绍了,相信你一定能搞定。
复制镜像
假设你把这个镜像里的所有文件都放在/iphone_image目录,那么执行下面操作(不要离开terminal的当前目录):
sudo
mkdir /usr/local/share/iphone-filesystem
sudo cp -Rp /iphone_image/*
/usr/local/share/iphone-filesystem/
- 1.
- 2.
- 3.
- 4.
#p#
设置$HEAVENLY的环境变量
HEAVENLY=/usr/local/share/iphone-filesystem
pushd
include
./configure –with-macosx-sdk=/Developer/SDKs/MacOSX10.4u.sdk
sudo
bash install-headers.sh
popd
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
安装csu
mkdir -p
build/csu
pushd build/csu
../../csu/configure
–host=arm-apple-darwin
sudo make install
popd
configure和make LLVM-GCC
mv llvm-gcc-4.0-iphone/configure llvm-gcc-4.0-iphone/configure.old
sed 's/^FLAGS_FOR_TARGET=$/FLAGS_FOR_TARGET=${FLAGS_FOR_TARGET-}/g'
llvm-gcc-4.0-iphone/configure.old > llvm-gcc-4.0-iphone/configure
sudo ln -s /usr/local/arm-apple-darwin/lib/crt1.o
\/usr/local/arm-apple-darwin/lib/crt1.10.5.o
mkdir -p build/llvm-gcc-4.0-iphone
pushd build/llvm-gcc-4.0-iphone
export FLAGS_FOR_TARGET="-mmacosx-version-min=10.1"
sh ../../llvm-gcc-4.0-iphone/configure –enable-llvm=`llvm-config –obj-root`
\
–enable-languages=c,c++,objc,obj-c++ –target=arm-apple-darwin
–enable-sjlj-exceptions \
–with-heavenly=$HEAVENLY –with-as=/usr/local/bin/arm-apple-darwin-as \
–with-ld=/usr/local/bin/arm-apple-darwin-ld
make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svn
sudo make install
popd
popd
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
这样,专门用来编译iPhone的toolchain gcc就编译完了,文件位置在:
/usr/local/bin/arm-apple-darwin-gcc
- 1.
整合XCode
接下来,整合XCode:
下载XCode模板。解压缩,把
iPhone
UIKit Skeleton Application
- 1.
- 2.
这个文件夹复制到
/Developer/Library/XCode/Project
Templates/Application/
- 1.
- 2.
好了,打开XCode,新建一个项目,你会发现列表里已经出现了
iPhone UIKit
Skeleton Application
- 1.
- 2.
这样一个模板(不在iPhone OS分类里而是在Mac OS X分类)直接创建项目,取个名字,
直接编译,成功。
建议你使用本文的方法编译toolchain,而不是直接下载别人编译好的安装包,这样问题会少很多。如果你下载了其他地方的例子,可能需要修改Makefile才可以编译成功。尤其是google code的iPhone代码。
比如:
你需要把
CC=/usr/local/arm-apple-darwin/bin/gcc
改成:
CC=/usr/local/bin/arm-apple-darwin-gcc -v
把
CC=/usr/local/arm-apple-darwin/bin/g++
- 1.
- 2.
- 3.
- 4.
- 5.
改成:
CXX=/usr/local/bin/arm-apple-darwin-g++
- 1.
把LDFLAGS里的
-Wl,-syslibroot,/usr/local/arm-apple-darwin/heavenly
- 1.
直接删掉。
#p#
好了,这样,你的开发环境就搭建完了。真正全球第一款免复杂设置的iPhone ToolChain SDK 开发编译环境,一键式安装,立即开始使用,无须下载Toolchain源码进行复杂设置和变异,免除各种问题困扰。
软件主页:http://item.taobao.com/item.htm?id=5671586706
做过Jailbreak系统iPhone开发的软件开发人员都知道,想要配置一套传统的iPhone ToolChain 。
SDK编译开发环境要面对非常大的困难,并付出相当多的精力,克服各种各样的编译错误,最终才能完成;如果要更换计算机和系统,重复的工作并不能减少错误发生的可能,这一切都严重影响开发者的精力和效率。
除此之外,传统的iPhone ToolChain SDK无法在Snow Leopard(雪豹)MAC系统中编译部署,使得很多高版本系统用户无法使用iPhone
ToolChain SDK进行iPhone软件开发。
现在好了,SJ99推出了免配置的iPhone ToolChain
SDK开发包,开发者再也不用手工下载各种繁多的底层模块自行编译部署了,一键式安装瞬间即可完成,开发者立即可以开始iPhone软件本身的设计和研发工作,大大节省了时间和精力。 有了这套开发包,您可以在MAC系统中开发基于iPhone
ToolChain第三方开发库的应用程序,并将软件部署到JailBreak的iPhone设备中运行。
小结:Leopard中搭建iPhone toolchain环境并整合到XCode的内容介绍完了,希望本文对你有所帮助!
【编辑推荐】