- 浏览: 580599 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
JYY282:
[i][/i]
Ecshop与Shopex的比较 -
qq247890212:
我也遇见这问题了,真诡异。重新下载个猫换了就好了。 太浪费时间 ...
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
From:http://www.2cto.com/kf/201110/107929.html
作者:易飞扬
第一回: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/toolchain/pre/bin:$PATH2. 编译过程中提示Frameworks,或头文件找不到
Classes/ClockAppDelegate.m:10:38: error: AVFoundation/AVFoundation.h: no such file or directory
make: *** [Classes/ClockAppDelegate.o] Error 1或者是连接的时候提示:
ld: library not found for -lobjc
collect2: ld returned 1 exit status
make: HelloWorldFirst? Error 1首先检查你的makefile文件是否配置好了库文件和头文件路径,比如像是以下的设置:
# iPhone SDK path
IPHONESDK = /home/xxx/toolchain/toolchain/sys
# include path (SDK)
INCPATH += -I"$(IPHONESDK)/usr/include"
# include path (gcc)
INCPATH += -I"$(IPHONESDK)/usr/include/gcc/darwin/4.2"
CFLAGS += $(INCPATH) \
...
LDFLAGS += -L"$(IPHONESDK)/usr/lib"
LDFLAGS += -F"$(IPHONESDK)/System/Library/Frameworks"
LDFLAGS += -F"$(IPHONESDK)/System/Library/PrivateFrameworks"
CFLAGS += -F"$(IPHONESDK)/System/Library/Frameworks"
CFLAGS += -F"$(IPHONESDK)/System/Library/PrivateFrameworks"
如果还是不行,下面有两个方法让你得到最新(3.1.2)的版本库和头文件:
方法1
在这里下载dyldcache,用scp等工具将其传送到iPhone上,然后执行:
iPhone$ ./dyldcache /System/Library/Caches/com.apple.dyld/dyld_shared_cache_armv6大概解压后有4GB左右的文件,请注意iPhone剩余的容量大小。解压完毕后将 ./out 目录下的文件拷贝到linux上的./toolchain/sys/usr/lib 目录下。
方法2
如果你还没有iPhone设备,那么可以按照以下的方法由sdk文件中提取库文件。
1. 在这里下载HFSExplorer工具。(windows下使用)
2. 用HFSExplorer打开SDK文件(.dmg文件),在Packages目录下将iPhoneSDKHeadersAndLibs.pkg文件解压到某一目录下。然后拷贝到linux下,比如这里拷贝到/tmp下。
3. 执行以下命令,加压该数据包:
$ cd /tmp
$ xar -xf iPhoneSDKHeadersAndLibs.pkg Payload
$ zcat Payload | cpio -i
完成之后,在/tmp目录下会生成几个子目录,这里我们需要的是Platforms目录下的东东。将 ./Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk 目录与其子目录拷贝到toolchain的sdks目录下就可以了。
1 $ cp -rp ./Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk /home/xxx/toolchain/sdks/
注意 toolchain/sdks/ 目录下已经有 iPhoneOS3.1.2.sdk 目录了,完整覆盖它。通过以上修改后,刚才的 makefile 中的SDK路径需要修改一下,像是下面的样子。
# iPhone SDK path
IPHONESDK = /home/xxx/toolchain/sdks/iPhoneOS3.1.2.sdk
...
--------------------------------------------------------------------------------
接下来,可以编译一下自己的程序,上机测试了。别忘了用ldid签名哦!。比如HelloToolchain是:
1 ldid -S HelloToolchain_
toolchain for iPhone SDK 3.1.2
发表评论
-
Objective-C 与 C++ 的异同
2013-04-02 12:03 1396http://www.cnblogs.com/y041039 ... -
Cocos2D-X是全球知名的开源跨平台手机游戏引擎
2013-01-22 10:05 2750http://www.oschina.net/p/cocos ... -
iOS Keyboard 键盘高度变化 自适应
2013-01-15 15:43 3249[[NSNotificationCenter default ... -
iOS使用自定义字体
2012-11-27 12:11 12140From: http://blog.csdn.net/csy1 ... -
4 款类似 Facebook/Path 切换效果的 iOS 组件
2012-11-27 12:03 2184From: http://blog.csdn.net/lia ... -
Path 2.0的UI界面设计详细介绍
2012-11-27 11:56 1463如Path的创始人Dave Morin ... -
史上最全的App Store邮箱列表
2012-11-27 11:51 1269From: http://roybaby.blog.51cto ... -
iOS从info.plist 获取项目的名称及版本号
2012-11-16 10:54 1664From: http://blog.sina.com.cn/s ... -
MapKit annotation drag and drop with callout info update
2012-10-13 10:38 2403http://hollowout.blogspot ... -
NSArray 或NSDictionary 调用writeToFile方法失败原因
2012-08-31 10:03 4465NSArray 或NSDictionary 调用writeTo ... -
如何让IOS应用从容地崩溃
2012-08-30 15:25 1615From: http://www.cocoachina.com ... -
iOS中判断设备系统版本
2012-08-29 17:17 31710在iOS开发中,经常要考虑系统的向下兼容,如果使用 ... -
iOS 汉字转拼音
2012-08-21 16:42 1463From: http://www.cnblogs.com/v2 ... -
iOS模拟器截图工具
2012-08-17 16:35 1654From: http://magicalboy.com/ios ... -
XCode下的iOS单元测试
2012-08-10 17:47 1163From: http://mobile.51cto.com/ ... -
AFNetworking
2012-08-08 10:54 4648AFNetworking on github: https:/ ... -
Wrapping Conventions
2012-08-01 15:54 822Wrapping Conventions ... -
Core Animation如何使显式动画结束时的值直接作用Layer
2012-08-01 14:51 3793(1)使用隐式动画会直接改变layer的属性值,如: ima ... -
How To Debug Memory Leaks with XCode and Instruments Tutoria
2012-07-31 16:30 1053From: http://www.raywenderlich. ... -
Using Properties in Objective-C Tutorial
2012-07-31 16:27 924From: http://www.raywenderlich. ...
相关推荐
3. **Linux上构筑iPhone OS3.1.2开发环境**:虽然Apple官方推荐在Mac OS X上进行开发,但这里可能介绍了如何在Linux系统上配置模拟器和工具链,以便在非Mac环境下进行开发。 4. **应用程序开发的第一步**:这一章会...
### 在本机搭建Hadoop 3.1.2开发环境详解 #### 一、环境准备与虚拟机搭建 ##### **1.1 虚拟机软件安装** 在本教程中,我们将使用VMware Workstation来搭建Linux CentOS 7虚拟机环境。首先确保你已经在物理机器上...
在Windows环境下搭建iPhone开发环境是一项技术挑战,因为官方推荐的开发环境是在Mac OS X上进行的。然而,通过使用虚拟化技术,例如VMware Workstation,可以在Windows PC上模拟出Mac OS X环境,从而实现iPhone应用...
7. **开发环境**:Python 3.1.2虽然没有内置集成开发环境(IDE),但可以配合IDLE(Python自带的基本IDE)或其他第三方IDE如PyCharm、VS Code等进行开发。这些IDE提供了代码编辑、调试、自动完成等功能,提升开发...
以下是一个详细的步骤来在Windows上安装iPhone开发环境: 1. **硬件准备**: - 确保你的计算机拥有一个支持虚拟化技术的64位双核处理器,例如Intel的VT或AMD的V技术。 - 至少需要2GB以上的内存,推荐4GB或更多,...
为了降低这一门槛,一些技术爱好者尝试在非苹果电脑上安装Mac OS X及iPhone开发环境,从而实现跨平台开发。 #### 二、准备工作 在开始安装之前,我们需要准备以下几项内容: 1. **硬件要求**: - 支持虚拟技术的...
在Windows中搭建iPhone开发环境,主要是为了在非Apple硬件上模拟运行Apple的Mac OS操作系统以及相关的iOS开发工具,以便在Windows环境下开发iPhone应用。以下是一个详细的步骤指南: 1. **硬件要求**: - 一台支持...
ThinkPHP3.1.2完全开发手册CHMThinkPHP3.1.2完全开发手册CHM
通过以上步骤,你可以在Windows 7操作系统上成功搭建一个完整的iPhone开发环境。这一过程虽然相对复杂,但遵循详细的指导步骤可以有效减少错误和问题的发生。对于希望在非Mac电脑上进行iOS开发的人来说,这是一个...