首先必須自己抓automake、autoconf、make、libtool等等的source 回來更新,這是因為手上的Linux版本太舊,早已沒有人維護套件。
我比較狠,都是解開後
./configure --prefix=/usr && make && sudo make install直接蓋掉原來的程式,心臟不夠大顆或沒有備份千萬別這麼幹。
我原本沒有仔細看文件就硬編,所以才會在autoconf時遇到上面那些套件太舊的問題。再來一定要好好看Installing GCC這份官方文件,不會太長。GCC有一點和平常編譯套件不同,GCC不建議在原始程式目錄下編譯,測試過確實會干擾,必須要在另一個目錄編譯才不會發生錯誤。我的步驟如下:
wget http://ftp.ntu.edu.tw/pub/gnu/gnu/gcc/gcc-4.4.1/gcc-4.4.1.tar.gz這樣太危險應該要先用make DESTDIR=path-to-rootdir install確認一切正常再用sudo make install覆蓋原來的GCC,這裏的path-to-rootdir要用絕對路徑,不能用相對路徑。
tar xzf gcc-4.4.1.tar.gz
mkdir gccbuild && cd gccbuild
../gcc-4.4.1/configure --prefix=/usr
make BOOT_CFLAGS='-O' bootstrap
sudo make install
裝完後So far so good,但不知何時會踩到地雷,好孩子千萬別這麼幹呀 ^_^
註:用這麼新的GCC有些Warning視同Error,例如 strict-aliasing rules,可以在configure套件時用configure --disable-werror避開,這樣編譯Binutils等套件才能順利編譯。
1 comments:
哇.. Glibc2 HOWTO 是我好幾年前一時興起翻的
沒想到現在竟然派上用場
真是令人高興
至於 gcc 的編譯 其實沒什麼好擔心的
記得 make 的過程中
gcc 會用編出來的 gcc 再對自己編譯一次
只有編譯成功才算 make 成功
所以就放心的用吧
張貼意見