2013-09-28 27 views
13

蘋果完全刪除了他們曾經擁有的任何GCC支持。 Xcode 5有沒有辦法使用最近的GCC(比如說4.8)?換句話說,要使用GCC代替Xcode中的LLVM。如何在Xcode 5中使用最近的GCC?

+0

您將需要編寫一個xcode插件來支持不同的編譯器,並且可能需要一些工作來完成它(我不知道,我沒有寫一個,但有一些答案與早期版本的Xcode有關涉及這項工作)。 – Petesh

+0

您可以嘗試覆蓋Xcode中的「CC」標誌,如[本帖子]中(2)所述(http://stackoverflow.com/questions/16261612/is-it-possible-to-compile-a-較新的版本 - 的 - LLVM和使用的,它與 - Xcode中/ 16265711#16265711)。問題是GCC與Clang有不同的界面,所以默認情況下它不能理解所有的Xcode設置標誌。我無法使它適用於iOS模板應用程序,但如果您根本不使用模板或不使用Objective-C,它可能會工作。 – hagi

回答

19

安裝GCC 4.8成的Xcode 4.5時,Xcode 4.6時,Xcode 5.0:

的人誰沒有安裝GCC 4.8:

安裝家庭釀造的新版本

你可以找到方法是如何安裝Internet

更新你的釀造到最新版本($brew update

1. brew install gcc48 --enable-all-languages

(可能應該安裝MPC,MPFR和通過釀造GMP,http://solarianprogrammer.com/2013/06/11/compiling-gcc-mac-os-x/

2. $brew link gcc48

3.backup克++,GPP,C++,CPP,C++中/usr/bin/

4。 [可選步驟]:

別名克++ - 4.8,GPP-4.8,C++ - 4.8,CPP-4.8,C++ - 4.8

/usr/local/Cellar/gcc48/4.8.2/bin/g++

/usr/bin/

[4個以上步驟還沒有安裝誰顯影劑的gcc]

5.撥打插件

1)下載a plugin of GCC 4.5 for Xcode

2)改變每「4.5」到「4.8」,「4_5」到「4_8」,文件名,文件內容,

,但文件GCC 4.5.xcspec中的「com.apple.compilers.gcc.headers.4_2」除外。

您可以保留內容English.lproj不變,並刪除Japanese.lproj。在文件

3)GCC 4.8.xcspec

(希望你已經改變GCC 4.5.xcspecGCC 4.8.xcspec

變化ExecPath = "...」;

ExecPath = "/usr/local/bin/gcc-4.8"

ExecPath = "/usr/local/Cellar/gcc48/4.8.2/bin/gcc-4.8"(爲人民的文件名誰安裝gcc-4。8由BREW)

4)刪除「-Wshorten-64至32」的部分在文件GCC 4.8.xcspec

{ 
    Name = "GCC_WARN_64_TO_32_BIT_CONVERSION"; 
    Type = Boolean; 
    DefaultValue = NO; 
    CommandLineArgs = { 
     YES = (
      "-Wshorten-64-to-32", 
     ); 
     NO =(); 
    }; 
    AppearsAfter = "GCC_WARN_PROTOTYPE_CONVERSION"; 
    Category = Warnings; 
    CommonOption = NO; 
    DisplayName = "Implicit Conversion to 32 Bit Type"; 
    Description = "Warn if a value is implicitly converted from a 64 bit type to a 32 bit type. 
    [GCC_WARN_64_TO_32_BIT_CONVERSION, -Wshorten-64-to-32]"; 
} 

6.put編輯GCC 4.8.xcplugin

/Applications/Xcode.app/Contents/Plugins/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/

7.reopen Xcode中。

現在,新插件已經爲您準備好了。您可以看到新的GCC編譯器插件在項目的「生成設置」

8.change在Xcode中創建項目

1)設置在project的「編譯器C/C++/Objective-C的」和在Xcode target設置

變化 「編譯器C/C++/Objective-C的」 到 「GCC 4.8」

2)在project設置

刪除「CLANG_CXX_LIBRARY」行

+0

除此之外,我必須確保我的二進制文件將鏈接到/usr/local/Cellar/gcc48/4.8.2/gcc/lib中的libstdC++庫,也就是說,我必須設置鏈接器的庫路徑-L /usr/local/Cellar/gcc48/4.8.2/gcc/lib而不是-L/usr/lib。 –

+0

@ChristianF,如何將commend設置爲Xcode? – frogcjn

+0

我在XCode 5.0.2上試過這個,編譯器列表中沒有顯示GCC 4.8.2編譯器。我也用XCode 3試了一下,它確實出現在那裏。也許XCode 5.0.2打破了一些東西。 – Halt

0

我很確定最新版本的gcc可以鏈接到Apple的庫。你可以安裝更新版本的gcc,llvm(和clang),以及許多其他的使用Homebrew的unix應用程序。看看here

+0

這不會將GCC集成到Xcode中。 – Adam