Redhat Linux 安裝 gcc 4.4.2

 安裝gcc 4.4.2 步驟如下:

tar -xjf gmp-6.1.2.tar.bz2
cd gmp-6.1.2/
./configure --prefix=/usr/lib/gmp-6.1.2 && make && make install
 
tar -xjf  mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4/
./configure --prefix=/usr/lib/mpfr-3.1.4 --with-gmp=/usr/lib/gmp-6.1.2 && make && make install

tar -xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3/
./configure --prefix=/usr/lib/mpc-1.0.3 --with-gmp=/usr/lib/gmp-6.1.2 --with-mpfr=/usr/lib/mpfr-3.1.4 && make && make install

tar -xjf gcc-4.4.2.tar.bz2
cd gcc-4.4.2/
./configure --prefix=/usr/lib/gcc-4.4.2 --enable-threads=posix --disable-checking --enable-language=c,c++ --with-gmp=/usr/lib/gmp-6.1.2 --with-mpfr=/usr/lib/mpfr-3.1.4 --with-mpc=/usr/lib/mpc-1.0.3 --disable-multilib && make && make install

安裝出現的問題和解決辦法:

問題1:gcc make時出現如下錯誤

../.././gcc/system.h:418:20: error: conflicting types for ‘strsignal’

原因:類型重定義,include了多餘文件。

解決辦法:按照http://www.it1352.com/466499.html中建議,取消設置bash變量CPATH,LIBRARY_PATH和C_INCLUDE_PATH即可編譯通過。
export C_INCLUDE_PATH=
export LIBRARY_PATH=
 

問題2: gcc make時出現如下錯誤

./.libs/libgcj.so: undefined reference to `__cxa_call_unexpected'

原因:這是gcc自身代碼中的bug

解決辦法:按照https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50888中的diff,修改libjava/prims.cc文件,修改完後重新編譯gcc即可。

 

安裝之後運行gcc -v 查看版本信息

export PATH=/usr/lib/gcc-4.4.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/gcc-4.4.2/lib:/usr/lib/gcc-4.4.2/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=/usr/lib/gcc-4.4.2/lib:/usr/lib/gcc-4.4.2/lib64:$LIBRARY_PATH


# gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/usr/lib/gcc-4.4.2 --enable-threads=posix --disable-checking --enable-language=c,c++ --with-gmp=/usr/lib/gmp-6.1.2 --with-mpfr=/usr/lib/mpfr-3.1.4 --with-mpc=/usr/lib/mpc-1.0.3 --disable-multilib
Thread model: posix
gcc version 4.4.2 (GCC)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章