2012-05-14 89 views
2

因此,這是在Mac OS 10.7下載了30美元並下載了XCode 4.3.2之後。安裝命令行工具後,安裝的gcc版本爲,仍爲 4.2.4。我需要4.7。我已經安裝了它並將g++鏈接設置爲/usr/bin。但是,當我嘗試編譯通過QtCreator任何程序,我得到無法升級Mac上的gcc

無法識別的命令行選項-Xarch_x86_64

我發現了一個3歲的bug報告here這個討論,但我真的couldn」 t遵循所有不同的shell命令等,我嘗試安裝liblastfm失敗,出現相同的錯誤。註釋here

的問題是,通常用來編譯東西 在Mac上使用GCC/G ++實際上只是一個包裝。

而這個包裝具有Mac-Only參數,如-Xarch_x86_64,然後 轉換爲正確的參數。

似乎它可能會擊中頭部的指甲。 Aaargh!當然必須有一些方法來解決這個問題?

+1

如果這就是你要求的,你可以使用macports安裝更新版本的gcc。蘋果公司轉而使用Clang作爲他們的C和C++編譯器,因爲GCC的許可在4.2.4之後發生了變化,他們不想使用獲得不同許可的GCC。 – birryree

+0

@birryree啊哈。我無法理解他們提供的gcc版本如何在4.2.4上停滯不前,現在很明顯。我不熟悉MacPorts(我通常是Linux用戶),但我會仔細研究它,謝謝。 –

+0

@birryree我設法使用MacPorts('g ++ - mp-4.7'現在在'/ opt/local/bin'中)安裝g ++,但是當我嘗試運行'gcc select'時,我得到'指定的組g ++不存在'。這隻發生在我嘗試選擇g ++時,對於gcc,這個命令工作正常。任何提示在這裏將不勝感激,並隨時把它放在一個答案。 –

回答

1

OSX的新版gcc版本有幾個來源。這裏是一個小的選擇:

http://hpc.sourceforge.net/(目前的gcc 4.8,以前的版本也可能會提供)

http://gcc.gnu.org/wiki/GFortranBinaries(GCC有4.7.0二進制安裝包)

我假設你沒有安裝的命令行Xcode中的工具。 Apple/Xcode並不總是與gcc保持一致,因此穩定性在這裏比創新更重要。

+0

謝謝,我會研究這些。我注意到,雖然我的問題並沒有在計算機上獲得新版本的gcc(真正的g ++),而是讓QtCreator發送正確的參數。 (我認爲這個問題比Qt更廣泛,但我不確定。)目前尚不清楚這些將對此有所幫助,但我現在已經遠離了Mac,但我會嘗試這些。 –

2

我創建了一個定製makepec - 在QtSDK/Desktop/Qt/4.8.1/gcc/mkspecs中,我將macx-g ++文件夾複製到了macx-g ++ 47。然後我從中刪除了「include(../ common/g ++ macx.conf)」,並且包含了它的內容,除了產生錯誤的部分(即-X ...事物)外。

我也完成了與

QMAKE_CC   = gcc-mp-4.7 
QMAKE_CXX  = g++-mp-4.7 

QMAKE_LINK  = $$QMAKE_CXX 
QMAKE_LINK_SHLIB = $$QMAKE_CXX 
QMAKE_LINK_C  = $$QMAKE_CC 
QMAKE_LINK_C_SHLIB = $$QMAKE_CC 

...其類似於規範爲MACX-G ++ 42。

現在,如果我將'-spec macx-g ++ 47'添加到qmake參數中,它就可以工作。

很多努力的東西很簡單......很想知道更好的方法。

+1

非常感謝,我會研究這一點。 「很多努力的東西簡單」 - 阿門!可以*不*理解爲什麼蘋果如此特別強硬。因爲Mac OSX是基於UNIX的。 –