若要安装很多版本较新的软件,发现在 make 的时候提示 gcc 版本不够高,例如 CentOS 7.4 自带的 gcc 4.8.5 版本是无法达到需求的,因此需要手动下载相对新的 gcc 源码进行安装。
安装步骤
1. 下载文件
wget https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-14.2.0/
2. 解压
tar -zxvf gcc-14.2.0.tar.gz
3. 安装依赖
cd gcc-14.2.0
./contrib/download_prerequisites
检查是否都下载成功
gettext-0.22.tar.gz: OK
gmp-6.2.1.tar.bz2: OK
mpfr-4.1.0.tar.bz2: OK
mpc-1.2.1.tar.gz: OK
isl-0.24.tar.bz2: OK
编译安装
cd gettext-0.22/
./configure --prefix=/usr/local/gettext-0.22
make -j8 && make install
cd ../gmp-6.2.1/
./configure --prefix=/usr/local/gmp-6.2.1
make -j8 && make install
cd ../mpfr-4.1.0
./configure --prefix=/usr/local/mpfr-4.1.0 --with-gmp=/usr/local/gmp-6.2.1
make -j8 && make install
cd ../mpc-1.2.1
./configure --prefix=/usr/local/mpc-1.2.1 --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0
make -j8 && make install
cd ../isl-0.24
./configure --prefix=/usr/local/isl-0.24 --with-gmp=/usr/local/gmp-6.2.1
# 提示 error: gmp.h header not found
# yum install gmp-devel
make -j8 && make install
rm gettext-0.22 -rf && rm gmp-6.2.1 -rf && rm mpfr-4.1.0 -rf && rm mpc-1.2.1 -rf && rm isl-0.24 -rf
4. 编译安装 GCC
cd ../
mkdir build && cd build
../configure --prefix=/usr/local/gcc-14.2.0 --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0 --with-mpc=/usr/local/mpc-1.2.1 --with-isl=/usr/local/isl-0.24 --with-gettext=/usr/local/gettext-0.22 --enable-threads=posix --enable--long-long --enable-languages=c,c++ --disable-checking --disable-multilib
--enable-threads=posix 使 c++异常能处理多线程代码
--enable--long-long 设定 gcc 数据类型大小
–-enable-languages 表示你要让你的 gcc 支持那些语言
–-disable-checking 生成的编译器在编译过程中不做额外检查,也可以使用 *–enable-checking=xxx* 来增加一些检查
–-disable-multilib 不生成编译为其他平台可执行代码的交叉编译器。
# 整个编译过程,根据你的机器配置,可能要等十几分钟到一个小时不等;
# 8 为当前服务器每颗物理 CPU 中的核心数,以实际为准。
make -j 8
# ./gcc/cc1plus: error while loading shared libraries: libisl.so.23: cannot open shared object file: No such file or directory
# 共享库找不到,是因为当前安装目录不在扫描范围内
sudo ln -s /usr/local/isl-0.24/lib/libisl.so.23.1.0 /usr/lib64/libisl.so.23 && sudo ln -s /usr/local/mpfr-4.1.0/lib/libmpfr.so.6.1.0 /usr/lib64/libmpfr.so.6
# 其他找不到问题解决方式相同
yum -y remove gcc gcc-c++ # 安装前卸载原来的 GCC
make install
# 由此就成功安装了 14.2.0 版本的 GCC 编译器。需要注意的是,如果此时读者直接执行 gcc --version,则 GCC 版本仍会显示之前安装的版本。操作系统重启之后,GCC 版本就会自行更正过来。
耗时统计:11:41 - 12:24
5. 环境配置
echo 'export PATH=/usr/local/gcc-14.2.0/bin:$PATH' >> /etc/profile
source /etc/profile
gcc -v
6. 校验版本
strings libstdc++.so.6 | grep GLIBCXX
© 版权声明
博主的文章没有高度、深度和广度,只是凑字数。利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章!如若有侵权,请联系博主删除。
喜欢就点个赞吧