2010-05-21 157 views
4

我試圖在Ubuntu 10.04上安裝gcc 4.5但失敗了。 這是一個編譯錯誤,我不知道如何解決。有沒有人在Ubuntu上成功安裝最新的gcc? 以下是我的步驟和錯誤信息,我想知道哪裏出了問題....gcc 4.5在ubuntu下的安裝問題

第一步:下載這些文件:

gcc-core-4.5.0.tar.gz 
gcc-g++-4.5.0.tar.gz 
gmp-4.3.2.tar.bz2 
mpc-0.8.1.tar.gz 
mpfr-2.4.2.tar.gz 

第二步:解壓上述文件

第3步:將gmp,mpc,mpfr移動到gcc-4.5.0 /目錄。

mv gmp-4.3.2 gcc-4.5.0/gmp 
mv mpc-0.8.1 gcc-4.5.0/mpc 
mv mpfr-2.4.2 gcc-4.5.0/mpfr 

第四步:去GCC-4.5.0目錄並配置:

sudo ./configure 

第五步:編譯和安裝

sudo make 
sudo make install 

第4步是確定的,我可以配置它成功了。但是,當我嘗試編譯它時,出現以下錯誤消息,我無法弄清楚問題所在。我應該將名稱從「gcc 4.5」更改爲「gcc」嗎?我們需要自己做這件事有點奇怪。我在安裝過程中是否有遺漏?

[email protected]:/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0$ sudo make 
[sudo] password for xxx: 
[ -f stage_final ] || echo stage3 > stage_final 
/bin/bash: line 2: test: /media/Data/Tool/linux/gcc: binary operator expected 
/bin/bash: /media/Data/Tool/linux/gcc: No such file or directory 
make[1]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
make[2]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
make[3]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
rm -f stage_current 
make[3]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
make[2]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
make[2]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
Configuring stage 1 in host-x86_64-unknown-linux-gnu/intl 
/bin/bash: /media/Data/Tool/linux/gcc: No such file or directory 
make[2]: *** [configure-stage1-intl] Error 127 
make[2]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
make[1]: *** [stage1-bubble] Error 2 
make[1]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0' 
make: *** [all] Error 2 
+1

你不應該運行'sudo make'。這將使文件具有不正確的權限。 – 2010-05-21 23:43:20

+0

我試圖編譯沒有sudo(只是「./configure」和「make」),但錯誤消息是相同的。我不明白爲什麼它尋找路徑「gcc」,而不是「gcc 4.5」。 – 2010-05-22 00:10:57

+0

我從來沒有遇到過使用'sudo make'的問題 - 我認爲安裝過程設置權限無論如何(當然,如果您將二進制文件,libs等手動複製到位,可能會有問題,但OP不是試圖做到這一點)。 – 2010-05-22 02:19:20

回答

4

這可能不是一個好主意,有您的路徑空間 - 這是一種罕見的,可以很容易搞亂shell腳本沒有被特別設計來處理它(這是一個糟糕的組合! )

另一個潛在的問題是,你正在運行的configuregcc目錄中 - 這isn't recommended(並沒有在所有的工作對我來說就gcc 4至少一個版本)。相反,創建一個空build目錄,平行於源目錄,讓你有這樣的:

gcc 4.5   <- but might want to avoid the space 
    gcc-4.5.0 
    ... 
    build 

然後cdbuild和運行

../gcc-4.5.0/configure 

您可能還需要從剛拉開源頭抓起目錄,因爲之前的失敗版本可能已經破壞了它。

+0

非常感謝!我現在可以編譯它:)我認爲主要問題是路徑中的空間。順便說一句,我很好奇它爲什麼推薦使用另一個文件夾來運行配置。我如你所說那樣做,如果不是太複雜,你能向我解釋理由嗎? – 2010-05-22 18:11:19

+0

說實話,我不確切知道爲什麼它打破了,如果你在源目錄中進行構建 - 大概構建過程會覆蓋源代碼發佈中的文件或創建一個進入PATH的新文件並引起混亂。 ..但我真的只是猜測:)他們甚至可能已經修復它爲'4。5',但他們仍然在'gcc'網站上反對它,所以我不會冒這個風險(當我遇到問題時,構建只在編譯幾個小時後失敗,這非常煩人:)) – 2010-05-23 00:30:20

+0

我的理解是開發人員構建的是源代碼;因此他們也建議你也這樣做,因爲在源代碼構建中測試的次數較少,構建也不重要。每個人都有他們的偏好,但我更喜歡建立外部源代碼,因爲它可以從源頭消除構建工件。對於沒有進行開發的人來說,這可能不是一個問題。 – ejgottl 2010-07-28 14:03:52