簡體   English   中英

在OSX上更新GCC

[英]Update GCC on OSX

所以我是一名新程序員,我剛剛在我的Macbook上安裝了XCode來獲得GCC。 我認為Xcode是在OSX上獲得GCC的唯一方法。 現在當我運行我的Hello World應用程序時,在C ++中,g ++出現說它是版本4.0.1但是當我查找以g開頭的命令時我也看到了g ++ - 4.2。 是否有任何方法可以使4.2默認而不是4.0.1,還有一種方法可以將gcc更新到最新版本4.4.0嗎?

編輯:好的,所以我安裝了macports並安裝了gcc4.4,它在終端上顯示為gcc-mp-4.4,如何使用gcc_select進行默認設置,就像命令和內容一樣。 謝謝。

如果你安裝了macports,你可以安裝gcc select,然后選擇你的gcc版本。

/opt/local/bin/port install gcc_select

要查看您的版本

port select --list gcc

選擇版本使用

sudo port select --set gcc gcc40

我知道這是一個古老的要求。 但它可能仍然對某些人有用。 使用當前版本的MacPorts,您可以使用port命令選擇默認的gcc版本。 要列出可用的gcc版本,請使用:

$ sudo port select --list gcc

 Available versions for gcc: gcc42 llvm-gcc42 mp-gcc46 none (active) 

要將gcc設置為MacPorts版本:

$ sudo port select --set gcc mp-gcc46

我只是說,使用軟鏈接來實現這一點是一個可怕的,不好的,可怕的想法。

編寫軟件的關鍵之一是可再現性 - 您希望每次都能獲得相同的結果。 這些系統非常復雜,您希望減少所有不可見的錯誤來源。

擁有軟鏈接是一種無形的錯誤來源。 這是你在一個月內會忘記的事情,然后轉移到另一台機器,並想知道為什么你得到不同的結果 - 或者,你會嘗試升級你的系統,你會得到奇怪的錯誤,因為它不是期待那里的軟鏈接。

此外,這不能保證工作 - 特別是,您不清楚您將獲得正確的系統包含文件,這些文件在gcc的迭代之間肯定會發生變化。

gcc_select是一種系統的方式來做同樣的事情,可以預測,或者在最壞的情況下,你可以提交錯誤報告,並獲得最終修復或自己修復它。

不幸的是:-( gcc_select不會影響XCode使用哪個編譯器,所以如果你需要在XCode(我這樣做)工作,它不是可行的方法。我仍然不知道那是什么方式。

以下使用Homebrew的方法讓我更新為gcc / g ++ 4.7:

$ brew tap SynthiNet/synthinet
$ brew install gcc47

這里的帖子上找到它。

使用“gcc_select -l”

> gcc_select -l

gcc40 mp-gcc44

> gcc_select mp-gcc44

/usr/bin類型中

sudo ln -s -f g++-4.2 g++

sudo ln -s -f gcc-4.2 gcc

應該這樣做。

你可以有GCC的多個版本在你的框,選擇要使用完整路徑調用它,例如,而不是一個g++使用全路徑/usr/bin/g++命令行(取決於您的GCC的生活)。

對於編譯項目,它取決於你使用什么系統,我不確定Xcode(我對默認atm感到滿意)但是當你使用Makefile時你可以設置GXX = / usr / bin / g ++等等。

編輯

現在有一個xcrun腳本,可以查詢以在mac上選擇適當版本的構建工具。 除了man xcrun之外,我還搜索了關於xcode和命令行工具的解釋,這些工具幾乎總結了如何使用它。

無論蘋果公司作為xcode中的默認gcc(之前的4.0.1,4.0.1之前的4.0.1)都經過了蘋果公司的測試(和維護)以及在OS X上構建軟件的“標准”。其他一切都不是,如果你想開發軟件,或者是gcc / OS X beta測試人員,請三思。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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