安装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)