簡體   English   中英

在Xcode 4.2和iOS SDK 5.0中使用gcc 4.2

[英]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進行編譯,則很容易撤消。

  1. 下載-但是不要安裝尚未 - xcode_4.1_for_lion.dmgxcode_4.1_for_snow_leopard.dmg

  2. 現在,按照以下步驟將Xcode 4.1安裝到/Developer-4.1

    1. 備份working /Developer目錄(安裝Xcode 4.2的地方)

    2.  [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.2 
    3. 使用默認安裝位置( /Developer )運行Xcode 4.1安裝程序

    4. 將新的Xcode 4.1安裝移至/Developer-4.1

       [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1 
    5. 將Xcode 4.2開發人員目錄移回/Developer

       [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer 
  3. 編輯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" 
    • 從這里改變第4142行:

       ShowInCompilerSelectionPopup = NO; IsNoLongerSupported = YES; 
    • 對此:

       ShowInCompilerSelectionPopup = YES; IsNoLongerSupported = NO; 
  4. 備份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 
  5. 將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 
  6. gccinfo 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 
  7. 使用gcc-4.2編譯!

    xcode 4.2中CGG 4.2的屏幕截圖


這是一篇博文,我寫了一些關於這個過程的更多信息。 如果您遇到任何問題或有任何問題,請隨時在博客上發表評論。


[1]如果從命令行打開(使用類似viemacsnano等的東西),請確保將路徑括在引號“/ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM