iPhone开发入门(3)—Linux上构筑iPhone OS3.1.2开发环境

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 04:17 点击:

作者:易飞扬

第一回:http://www.2cto.com/kf/201110/107927.html我们介绍了开发iPhone应用程序标准的环境配置是基于intel Mac的。虽说现在Mac很便宜,但是仍然大部分人仍然在用windows和linux系统,今天就介绍一下在linux上建立iPhone开发系统。这里采用最新的SDK版本3.1.2(截至到2009/12/01)。

这回主要介绍linux下的安装,配置方法,windows(Cygwin)的配置可以参考这里。

我的HOST机器环境如下:
 $ uname -a
Linux localhost.localdomain 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:54:20 EDT 2006 i686 i686 i386 GNU/Linux

$ gcc -v
Using built-in specs.
Target: i386-redhat-linux
config option: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
thread model: posix
gcc version 4.1.2 20070626 (Red Hat 4.1.2-13)

需要准备的东东:

3.1.2用restore file iPhone1,2_3.1.2_7D11_Restore.ipsw
iPhone3.1.2 SDK iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg
许多网站都介绍过了,这里也使用 toolchain 来建立环境。参考 iphonedevonlinux 。

checkout toolchain
 $ mkdir ~/toolchain
$ cd ~/toolchain
$ svn checkout http://iphonedevonlinux.googlecode.com/svn/trunk/ ./

# 拷贝SDK,firmware文件
$ mkdir -p files/firmware
$ mv ./iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg ./files/
$ mv ./iPhone1,2_3.1.2_7D11_Restore.ipsw ./files/firmware/

今天(2010/2/9)更新的toolchain已经对应3.1.2版本的SDK了,所以大家不用再给他打补丁了。(多谢网友wzhao)

※ 如果遇到"We need the decryption key for 018-6028-014.dmg."的问题,可以将toolchain.sh中的
DECRYPTION_KEY_SYSTEM=$.....    替换为 DECRYPTION_KEY_SYSTEM="a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6"

因为checkout 下来的toolchain是针对3.0版本的,直接不能使用,所以需要打个补丁。这里下载补丁,然后在toolchain目录下:

 $ patch < toolchain.sh.patch
$ chmod u+x toolchain.sh

安装/编译
本来执行 ./toolchain.sh all 后会全部给安装和编译的,但是实际上有很多问题,所以我们还是一步一步地来。

 # 第一步没有什么问题
$ ./toolchain.sh headers
# 第二步也顺利通过
$ ./toolchain.sh firmware
# 第三步也挺顺利
$ ./toolchain.sh darwin_sources
# 最后一步,这一步需要注意了
$ ./toolchain.sh build

执行最后一步编译gcc-4.2-iphone,在链接的时候会出现以下的错误:

 ld: library not found for -lc
collect2: ld returned 1 exit status
make[3]: *** [libgcc_s.dylib] error 1
....
make[2]: *** [stmp-multilib] error 2
rm gcov.pod fsf-funding.pod gfdl.pod gpl.pod cpp.pod gcc.pod
....
make[1]: *** [all-gcc] error 2
make[1]:leaving dir `/home/xxx/toolchain/toolchain/bld/gcc-4.2-iphone'
make: *** [all] error 2
 

解决它很简单,在toolchain目录下执行:

cp ./sdks/iPhoneOS3.1.2.sdk/usr/lib/libSystem.B.dylib ./toolchain/bld/gcc-4.2-iphone/gcc/libc.dylib接下来在执行一次 ./toolchain.sh build 就可以了。最后出现下面的画面就是成功了。

It seems like the toolchain built!最后你可以执行 ./toolchain.sh clean 删除编译过程中的文件和 SDK 等文件,你也可以不这么做。

测试
接下来,借可以先试试 toolchain/apps/ 下面的测试代码 HelloToolchain。

编译的过程中可能出现的问题有以下几个::
1. 找不到编译器文件 arm-apple-darwin9-gcc

如果直接在HelloToolchain目录下 make。很可能提示,没有 arm-apple-darwin9-gcc 等命令。这是因为没有设置编译器路径的原因。将下面的语句放入 /etc/profile 内(针对所有用户),或者 .bash_profile 文件中就可以了。

export PATH=/home/xxx/toolchain/toolch

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Lexical or Preprocessor Issue 'xxx.h
    • ios学习笔记(二)xcode 4.3.2下实现基本交互
    • ios版本的helloworld
    • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
    • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
    • UITableView一些方法
    • IOS类似iphone通讯录TableView的完整demo【附源码】
    • [iPhone中级]iPhone团购信息客户端的开发 (二)
    • iphone(object-c)内存管理(1)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1