自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux上構(gòu)筑iPhone OS3.1.2開(kāi)發(fā)環(huán)境 實(shí)例操作

移動(dòng)開(kāi)發(fā) iOS
本文介紹的是Linux上構(gòu)筑iPhone OS3.1.2開(kāi)發(fā)環(huán)境 實(shí)例操作,很詳細(xì)的操作步驟,不多說(shuō),先來(lái)看內(nèi)容詳解。

Linux上構(gòu)筑iPhone OS3.1.2開(kāi)發(fā)環(huán)境 實(shí)例操作是本文要介紹的內(nèi)容,開(kāi)發(fā)iPhone應(yīng)用程序標(biāo)準(zhǔn)的環(huán)境配置是基于intel Mac的。雖說(shuō)現(xiàn)在Mac很便宜,但是仍然大部分人仍然在用windowslinux系統(tǒng),今天就介紹一下在linux上建立iPhone開(kāi)發(fā)系統(tǒng)。這里采用最新的SDK版本3.1.2。這回主要介紹linux下的安裝,配置方法,windows(Cygwin)的配置可以參考這里。

我的HOST機(jī)器環(huán)境如下:

  1. uname -a  Linux localhost.localdomain 2.6.18-1.2798.fc6   
  2. #1 SMP Mon Oct 16 14:54:20 [/pre]  EDT 2006 i686 i686 i386 GNU/Linux  gcc -v  Using built-in specs.    
  3. Target: i386-redhat-linux  config option: ../configure --prefix=/usr --mandir=/usr/share/man [/pre]               
  4. --infodir=/usr/share/info --enable-shared --enable-threads=posix [/pre]                
  5. --enable-checking=release --with-system-zlib --enable-__cxa_atexit [/pre]                
  6. --disable-libunwind-exceptions --enable-libgcj-multifile [/pre]                
  7. --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk [/pre]               
  8. --disable-dssi [/pre]               
  9. --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre [/pre]               
  10. --with-cpu=generic --host=i386-redhat-linux  thread model: posix  gcc version 4.1.2 20070626 (Red Hat 4.1.2-13)  

需要準(zhǔn)備的:

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

許多網(wǎng)站都介紹過(guò)了,這里也使用 toolchain 來(lái)建立環(huán)境。參考 iphonedevonlinux 。

  1. checkout toolchain $ mkdir ~/toolchain  cd ~/toolchain  svn checkout [url]http://iphonedevonlinux.googlecode.com/svn/trunk/[/url] 
  2. ./  拷貝SDK,firmware文件  mkdir -p files/firmware  mv ./iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg 
  3. ./files/  mv ./iPhone1,2_3.1.2_7D11_Restore.ipsw ./files/firmware/  

更新的toolchain已經(jīng)對(duì)應(yīng)3.1.2版本的SDK了,所以大家不用再給他打補(bǔ)丁了。

  1. [blockquote] 

如果遇到"We need the decryption key for 018-6028-014.dmg."的問(wèn)題,可以將toolchain.sh中的

 

  1. DECRYPTION_KEY_SYSTEM=$.....   
  2. 替換為 DECRYPTION_KEY_SYSTEM
  1. "a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6"  
  2. [/blockquote] 

因?yàn)閏heckout 下來(lái)的toolchain是針對(duì)3.0版本的,直接不能使用,所以需要打個(gè)補(bǔ)丁。

這里下載補(bǔ)丁,然后在toolchain目錄下:

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

安裝/編譯

本來(lái)執(zhí)行 ./toolchain.sh all 后會(huì)全部給安裝和編譯的,但是實(shí)際上有很多問(wèn)題,所以我們還是一步一步地來(lái)。

第一步?jīng)]有什么問(wèn)題

  1. ./toolchain.sh headers 

第二步也順利通過(guò)

  1. ./toolchain.sh firmware 

第三步也挺順利

  1. ./toolchain.sh darwin_sources 

最后一步,這一步需要注意了

  1. ./toolchain.sh build 

執(zhí)行最后一步編譯gcc-4.2-iphone,在鏈接的時(shí)候會(huì)出現(xiàn)以下的錯(cuò)誤: ld: library not found for -lc

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

解決它很簡(jiǎn)單,在toolchain目錄下執(zhí)行:

  1. cp ./sdks/iPhoneOS3.1.2.sdk/usr/lib/libSystem.B.dylib [/pre]  ./toolchain/bld/gcc-4.2-iphone/gcc/libc.dylib[/pre]  

接下來(lái)在執(zhí)行一次 ./toolchain.sh build 就可以了。最后出現(xiàn)下面的畫(huà)面就是成功了。

  1. It seems like the toolchain built![/pre]  

最后你可以執(zhí)行 ./toolchain.sh clean 刪除編譯過(guò)程中的文件和 SDK 等文件,你也可以不這么做。

測(cè)試

接下來(lái),借可以先試試 toolchain/apps/ 下面的測(cè)試代碼 HelloToolchain。

編譯的過(guò)程中可能出現(xiàn)的問(wèn)題有以下幾個(gè):

1. 找不到編譯器文件 arm-apple-darwin9-gcc

如果直接在HelloToolchain目錄下 make。很可能提示,沒(méi)有 arm-apple-darwin9-gcc 等命令。

這是因?yàn)闆](méi)有設(shè)置編譯器路徑的原因。將下面的語(yǔ)句放入 /etc/profile 內(nèi)(針對(duì)所有用戶(hù)),

或者 .bash_profile 文件中就可以了。

  1. export PATH=/home/xxx/toolchain/toolchain/pre/binPATH  

2. 編譯過(guò)程中提示Frameworks,或頭文件找不到

  1. Classes/ClockAppDelegate.m:10:38: error:   AVFoundation/AVFoundation.h: no such file or directory  make: *** [Classes/ClockAppDelegate.o] Error 1  

或者是連接的時(shí)候提示:

  1. ld: library not found for -lobjc  collect2: ld returned 1 exit status  make: HelloWorldFirst? Error 1[/pre]  

首先檢查你的makefile文件是否配置好了庫(kù)文件和頭文件路徑,比如像是以下的設(shè)置: # iPhone SDK path

  1. 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"  

如果還是不行,下面有兩個(gè)方法讓你得到最新(3.1.2)的版本庫(kù)和頭文件:

方法1

在這里下載dyldcache,用scp等工具將其傳送到iPhone上,然后執(zhí)行:

  1. iPhone$ ./dyldcache /System/Library/Caches/com.apple.  
  2. dyld/dyld_shared_cache_armv6 

大概解壓后有4GB左右的文件,請(qǐng)注意iPhone剩余的容量大小。

解壓完畢后將 ./out 目錄下的文件拷貝到linux上的./toolchain/sys/usr/lib 目錄下。

方法2

如果你還沒(méi)有iPhone設(shè)備,那么可以按照以下的方法由sdk文件中提取庫(kù)文件。

1. 在這里下載HFSExplorer工具。(windows下使用)

2. 用HFSExplorer打開(kāi)SDK文件(.dmg文件),

在Packages目錄下將iPhoneSDKHeadersAndLibs.pkg文件解壓到某一目錄下。

然后拷貝到linux下,比如這里拷貝到/tmp下。

3. 執(zhí)行以下命令,加壓該數(shù)據(jù)包:

  1. cd /tmp  xar -xf iPhoneSDKHeadersAndLibs.pkg Payload  zcat Payload | cpio -i  

完成之后,在/tmp目錄下會(huì)生成幾個(gè)子目錄,這里我們需要的是Platforms目錄下的東東。

將 ./Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk 目錄與其子目錄拷貝到toolchain的sdks目錄下就可以了。

  1. cp -rp ./Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk [/pre]  /home/xxx/toolchain/sdks/  

注意 toolchain/sdks/ 目錄下已經(jīng)有 iPhoneOS3.1.2.sdk 目錄了,完整覆蓋它。

通過(guò)以上修改后,剛才的 makefile 中的SDK路徑需要修改一下,像是下面的樣子。

  1. #iPhone SDK path  IPHONESDK = /home/xxx/toolchain/sdks/iPhoneOS3.1.2.sdk  

接下來(lái),可以編譯一下自己的程序,上機(jī)測(cè)試了。別忘了用ldid簽名哦!

小結(jié):Linux上構(gòu)筑iPhone OS3.1.2開(kāi)發(fā)環(huán)境 實(shí)例操作的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-08 11:01:02

Linux iPhone

2011-08-08 15:56:18

iPhone 震動(dòng) NSUserDefa

2011-07-07 16:42:38

iPhone Sqlite3 數(shù)據(jù)庫(kù)

2011-08-03 16:01:24

iPhone應(yīng)用開(kāi)發(fā) 自動(dòng)登陸

2011-08-29 11:32:44

UbuntuiPhone

2011-07-25 18:02:51

iPhone LibFetion 移植

2011-07-06 17:34:47

iPhone

2011-07-26 11:13:15

iPhone PXL

2011-08-08 16:56:44

iPhone 字符處理 視圖

2011-07-18 13:37:53

2009-06-20 13:37:18

iPhone OS 3iPhone OS

2011-07-08 16:02:24

iphone

2011-08-02 17:37:01

IPhone開(kāi)發(fā) 環(huán)境搭建

2011-07-27 17:07:06

iPhone 游戲 Cocos2d

2010-06-08 10:00:00

iOSiPhone OS蘋(píng)果

2011-07-06 18:10:20

Xcode 4 iPhone

2011-08-22 13:46:15

iPhone開(kāi)發(fā)GameKit 藍(lán)牙

2011-07-27 11:19:33

iPhone UITableVie

2011-07-28 10:11:54

iPhone開(kāi)發(fā) 備忘

2011-07-06 16:25:10

iPhone 程序 調(diào)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)