日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux apple开发环境,Linux上构筑iPhone OS3.1.2开发环境 实例操作

發布時間:2024/3/13 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux apple开发环境,Linux上构筑iPhone OS3.1.2开发环境 实例操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux上構筑iPhoneOS3.1.2開發環境 實例操作是本文要介紹的內容,開發iPhone應用程序標準的環境配置是基于intel Mac的。雖說現在Mac很便宜,但是仍然大部分人仍然在用windows和linux系統,今天就介紹一下在linux上建立iPhone開發系統。這里采用最新的SDK版本3.1.2。這回主要介紹linux下的安裝,配置方法,windows(Cygwin)的配置可以參考這里。

我的HOST機器環境如下:

uname?-a??Linux?localhost.localdomain?2.6.18-1.2798.fc6

#1?SMP?Mon?Oct?16?14:54:20?[/pre]??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?[/pre]

--infodir=/usr/share/info?--enable-shared--enable-threads=posix[/pre]

--enable-checking=release--with-system-zlib?--enable-__cxa_atexit?[/pre]

--disable-libunwind-exceptions?--enable-libgcj-multifile?[/pre]

--enable-languages=c,c++,objc,obj-c++,java,fortran,ada--enable-java-awt=gtk[/pre]

--disable-dssi?[/pre]

--enable-plugin--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre?[/pre]

--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?[url]http://iphonedevonlinux.googlecode.com/svn/trunk/[/url]

./??拷貝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/

更新的toolchain已經對應3.1.2版本的SDK了,所以大家不用再給他打補丁了。

[blockquote]

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

DECRYPTION_KEY_SYSTEM=$.....

替換為DECRYPTION_KEY_SYSTEM=

"a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6"

[/blockquote]

因為checkout 下來的toolchain是針對3.0版本的,直接不能使用,所以需要打個補丁。

這里下載補丁,然后在toolchain目錄下:

patch

安裝/編譯

本來執行 ./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?[/pre]??./toolchain/bld/gcc-4.2-iphone/gcc/libc.dylib[/pre]

接下來在執行一次 ./toolchain.sh build 就可以了。最后出現下面的畫面就是成功了。

It?seems?like?the?toolchain?built![/pre]

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

測試

接下來,借可以先試試 toolchain/apps/ 下面的測試代碼 HelloToolchain。

編譯的過程中可能出現的問題有以下幾個:

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

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

這是因為沒有設置編譯器路徑的原因。將下面的語句放入 /etc/profile 內(針對所有用戶),

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

exportPATH=/home/xxx/toolchain/toolchain/pre/binPATH

2. 編譯過程中提示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[/pre]

首先檢查你的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目錄下就可以了。

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

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

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

#iPhone?SDK?pathIPHONESDK=?/home/xxx/toolchain/sdks/iPhoneOS3.1.2.sdk

接下來,可以編譯一下自己的程序,上機測試了。別忘了用ldid簽名哦!

小結:Linux上構筑iPhoneOS3.1.2開發環境 實例操作的內容介紹完了,希望本文對你有所幫助!

【編輯推薦】

【責任編輯:李程站 TEL:(010)68476606】

點贊 0

總結

以上是生活随笔為你收集整理的linux apple开发环境,Linux上构筑iPhone OS3.1.2开发环境 实例操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。