[英]Use gcc 4.2 in Xcode 4.2 and iOS SDK 5.0
我今天剛剛升級到Xcode 4.2和iOS SDK 5。 但是新的編譯器似乎有些不同。
現在有兩個“Compiler for C / C ++ / Objective-C”選項,“Apple LLVM編譯器3.0”和“LLVM GCC 4.2”。 缺少GCC 4.2。
Apple LLVM編譯器3.0,構建速度非常快(我喜歡它),給了我999+警告,我的游戲再也無法運行了。 看起來在內存上存在一些差異,並且在加載我們的游戲腳本時它會崩潰。
LLVM GCC 4.2真是太神了,我仍然無法在i7機器上完成一個小時的構建。
而且,還有一件事是我們的引擎使用gcc命令行來構建(而不是xcode)。
因此,它導致了一個問題, 我如何在Xcode 4.2中使用gcc 4.2 ? 這甚至可能嗎?
這是一種在xcode 4.2中使用gcc 4.2進行編譯的方法。 大多數這是通過命令行完成的,所以當你看到這樣的行: [ 15:30 jon@MacBookPro / ]$
,你需要打開一個終端並在$
之后運行命令。
在此過程中不會刪除或刪除任何文件或目錄,因此如果您將來需要使用LLVM進行編譯,則很容易撤消。
下載-但是不要安裝尚未 - xcode_4.1_for_lion.dmg或xcode_4.1_for_snow_leopard.dmg
現在,按照以下步驟將Xcode 4.1安裝到/Developer-4.1
:
備份working /Developer
目錄(安裝Xcode 4.2的地方)
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.2
使用默認安裝位置( /Developer
)運行Xcode 4.1安裝程序
將新的Xcode 4.1安裝移至/Developer-4.1
:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
將Xcode 4.2開發人員目錄移回/Developer
:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
編輯Xcode 4.2 GCC 4.2.xcspec
文件,使gcc 4.2顯示在編譯器選項列表中[1] :
[ 15:30 jon@MacBookPro / ]$ sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2 (Plausible Blocks).xcplugin/Contents/Resources/GCC 4.2.xcspec"
從這里改變第41和42行:
ShowInCompilerSelectionPopup = NO; IsNoLongerSupported = YES;
對此:
ShowInCompilerSelectionPopup = YES; IsNoLongerSupported = NO;
備份Xcode 4.2 iOS / Simulator Framework usr
目錄:
[ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr.backup [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneSimulator.platform/Developer/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr.backup
將Xcode 4.1 iOS / Simulator Framework usr
目錄復制到Xcode 4.2:
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr
將gcc
和info
iOS SDK庫目錄從Xcode 4.1復制到Xcode 4.2 [2] :
[ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/gcc /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/gcc [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/info /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/info
使用gcc-4.2編譯!
這是一篇博文,我寫了一些關於這個過程的更多信息。 如果您遇到任何問題或有任何問題,請隨時在博客上發表評論。
[1]如果從命令行打開(使用類似vi
, emacs
, nano
等的東西),請確保將路徑括在引號“/ long path / with spaces / in / file.xcspec”中,或者轉義空格/ some / long \\ path / with \\ spaces / in \\ it / file.xcspec
[2]這是必要的,因為iPhoneOS.platform SDK有自己的單獨的/usr/lib
目錄,但iPhoneSimulator.platform SDK沒有
在今年的WWDC中,Apple表示GCC已不再適用於XCode 4.2。 但是,他們表示LLVM編譯器支持與GCC相同的命令行開關。
我試圖為適用的Xcode版本更新這個。 這將顯示如何安裝Xcode 4.4.x並支持完整的gcc。
你需要:Mac OSX Lion - 這很重要,不要試試Mountain Lion!
您需要:Lion的Xcode 4.1副本。 使用您的開發者帳戶從Apple下載。 還沒安裝。
現在通過Mac App Store從Apple安裝Xcode 4.4.x.
完成此操作后,您的應用程序目錄中將包含xcode 4.4.x.
根據用戶權限,您必須使用管理員密碼確認許多操作。 必要時這樣做。 如果你損壞你的系統,你就是你自己(不應該發生,因為Xcode已經被應用了)。
通過鼠標右鍵單擊和“顯示包內容”打開Xcode 4.4.x,然后在此處導航到gcc 4.2插件:
/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2.xcplugin / Contents / Resources /
使用文本編輯器打開文件gcc 4.2.xcspec。
查看第41和第41行。確保它們看起來與此處所示完全相同(值將在全新安裝中反轉)。
ShowInCompilerSelectionPopup = YES;
IsNoLongerSupported = NO;
保存並關閉。
為Lion安裝Xcode 4.1。
現在導航到啟動驅動器根目錄下的開發人員目錄。
導航到/Developer/Platforms/iPhoneOS.platform/Developer/usr/
使用command-c復制usr目錄
切換回xcode 4.4.x.
導航到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/
使用command-v粘貼usr目錄
現在獅子會嘗試合並這兩個目錄。 一定要按“保持更新”
重復源:/Developer/Platforms/iPhoneSimulator.platform/Developer/usr和目標:/Applications/Xcode.app/Contents/Developer/Platforms/usr
再次,合並和“保持更新”
導航至:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib
現在通過選擇它並使用command-c復制gcc目錄
導航到Xcode 4.4.x應用程序:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib
使用command-v粘貼gcc目錄
從/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib重復'info'目錄目標是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer /SDKs/iPhoneOS5.1.sdk/usr/lib
完成。 啟動xcode並在必要時在設置中選擇GCC 4.2。 您應該刪除過時的“Developer”目錄。
Xcode現在也應該再次通過Mac App Store接受更新(這仍有待測試)。 我也沒有下載命令行工具,但我猜它也會存活下來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.