作者:杨艳奎_718 | 来源:互联网 | 2024-11-22 10:41
安装 GCC 4.4.2 的步骤如下:
tar -xjf gmp-6.1.2.tar.bz2
cd gmp-6.1.2/
./configure --prefix=/usr/local/gmp-6.1.2 && make && sudo make install
tar -xjf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4/
./configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-6.1.2 && make && sudo make install
tar -xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3/
./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-3.1.4 && make && sudo make install
tar -xjf gcc-4.4.2.tar.bz2
cd gcc-4.4.2/
./configure --prefix=/usr/local/gcc-4.4.2 --enable-threads=posix --disable-checking --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3 --disable-multilib && make && sudo make install
安装过程中可能遇到的问题及其解决方案:
问题 1: 在执行 gcc make 时出现如下错误:
../.././gcc/system.h:418:20: error: conflicting types for ‘strsignal’
原因: 类型冲突,可能是由于包含了多余的头文件。
解决办法: 清除 bash 变量 CPATH、LIBRARY_PATH 和 C_INCLUDE_PATH 的设置,以避免编译时使用到错误的头文件路径。具体操作命令为:
export C_INCLUDE_PATH=
export LIBRARY_PATH=
export CPATH=
问题 2: 执行 gcc make 时遇到如下错误:
./.libs/libgcj.so: undefined reference to `__cxa_call_unexpected'
原因: 这是 GCC 自身代码中的一个 bug。
解决办法: 根据 GCC Bugzilla 中提供的补丁(Bug 50888),修改 libjava/prims.cc 文件,修复后再进行编译。
安装完成后验证 GCC 版本:
为了确保 GCC 4.4.2 已正确安装并可用,需要更新环境变量,并检查 GCC 的版本信息:
export PATH=/usr/local/gcc-4.4.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc-4.4.2/lib:/usr/local/gcc-4.4.2/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=/usr/local/gcc-4.4.2/lib:/usr/local/gcc-4.4.2/lib64:$LIBRARY_PATH
# gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/usr/local/gcc-4.4.2 --enable-threads=posix --disable-checking --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3 --disable-multilib
Thread model: posix
gcc version 4.4.2 (GCC)