2011-12-28 307 views
4

我知道,編譯編譯器是一個諷刺。但是我需要這個編譯器的特定版本,而CentOS 5.x版本庫沒有最新版本的GCC。編譯編譯器錯誤編譯GCC

我需要的版本是4.3.2,但我只有4.1.1。

我跟着這個教程安裝在gcc http://www.mjmwired.net/resources/mjm-fedora-gcc.html和我用下面的參數在配置(前編譯):

/root/gcc/gcc-4.3.6/configure前綴= /選擇/ gcc43 --program-suffix = 43 --enable-languages = c,C++ --enable-shared --enable-threads = posix --disable-checking --with-system-zlib --enable -__ cxa_atexit --disable -libunwind的例外 - 禁用multilib的

最後一個選項--disable-multilib救救我的另一個錯誤是我在以前的編譯嘗試了(很長的時間編譯之後。 ..)

我設立一個環境變量,因爲在以前的嘗試,我有錯誤,所以我設置如下:

export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib:$LD_LIBRARY_PATH 

,以確保編譯器搜索MPFR和GMP庫(需要哪些)在該目錄中

所以,我執行'make'命令。

我雖然是一切就OK了,因爲這個時候只花了更多的時間(在我的最後一次嘗試設置變量之前我花了約2小時編譯)

我用Amazon Web Services的微實例,該實例有1個單核x86_64處理器和613 MB的RAM,,所以編譯需要大約9個小時。

偏偏我又得到了錯誤的!現在我得到這樣的:

make[2]: Entering directory `/root/gcc/build' 
make[3]: Entering directory `/root/gcc/build' 
rm -f stage_current 
make[3]: Leaving directory `/root/gcc/build' 
Comparing stages 2 and 3 
warning: ./cc1-checksum.o differs 
warning: ./cc1plus-checksum.o differs 
Bootstrap comparison failure! 
./gcc.o differs 
./varasm.o differs 
./except.o differs 
./i386.o differs 
make[2]: *** [compare] Error 1 
make[2]: Leaving directory `/root/gcc/build' 
make[1]: *** [stage3-bubble] Error 2 
make[1]: Leaving directory `/root/gcc/build' 
make: *** [all] Error 2 

有什麼建議?

+3

「我知道,編譯一個編譯器是一個諷刺。」技術術語是* bootstrapping *而不是諷刺。 – thiton 2011-12-28 13:16:08

回答

7

您可能沒有正確清理中間的嘗試。做一個make distclean並再試一次。抱歉。

+0

「bootstrapping」在distclean後工作,但是,我發現這是浪費時間,因爲我使用的是CentOS的錯誤版本,並且還發現了我需要的軟件包的存儲庫。無論如何,我更願意說我學到了一些東西。 – 2011-12-31 01:34:05

0

你也許可以抓取.src.rpm文件。 Fedora 16並執行rpmbuild ---重建它。如果有任何時髦的Red Hat/CentOS/Fedora標誌擔心,那應該處理它。 (我假設你已經沒有EPEL RPM的版本了)