安装GCC-9.3.0全指导
一.安装准备
1_1下载GCC-9.3.0安装包*
手动下载辅助包,自动下载太慢,咱直接自己动手解决
ps:下载源精选国内清华源,速度无敌
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
1_2 解压安装包
tar -xvf gcc-9.3.0.tar.gz
2 手动下载辅助包,自动下载太慢,咱直接自己动手解决
2_1进入GCC解压目录
cd gcc-9.3.0
2_2下载依赖版本gmp-6.1.0
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.0.tar.xz
解压
tar -xvf gmp-6.1.0.tar.xz
改名成需要的目录名
mv gmp-6.1.0 gmp
2_3 下载依赖版本mpfr-3.1.4
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.gz
解压
tar -xvf mpfr-3.1.4.tar.gz
改名成需要的目录名
mv mpfr-3.1.4 mpfr
2_4 下载依赖版本mpc-1.0.3
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
解压
tar -xvf mpc-1.0.3.tar.gz
改名成需要的目录名
mv mpc-1.0.3 mpc
二.安装编译
1 设置配置信息
建立编译目录,并进入
mkdir gcc-build
cd gcc-build
(/usr/local/gcc-9.3.0是新版本GCC的安装目录,可以更换,新手不推荐更换)
../configure --prefix=/usr/local/gcc-9.3.0 --disable-multilib --enable-languages=c,c++
2 编译
(小伙伴电脑有CPU多个核心时,推荐把“4”换成自己的核心数,这个过程需要时间多)
make -j 4
3 安装
make install -j 4
4 更新链接配置
ln -s /usr/local/gcc-9.3.0 /usr/local/gcc
打开文件 sudo vim /etc/profile 输入一下指令
export PATH=/usr/local/gcc/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc/lib64
export MANPATH=/usr/local/gcc/share/man:$MANPATH
export CC=/usr/local/gcc/bin/gcc
export CXX=/usr/local/gcc/bin/g++
三.成果检验
gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-9.1.0/libexec/gcc/x86_64-pc-linux-gnu/9.1.0/lto-wrapper
目标:x86_64-pc-linux-gnu
配置为:../configure --prefix=/usr/local/gcc-9.1.0 --disable-multilib --enable-languages=c,c++
线程模型:posix
gcc 版本 9.1.0 (GCC)
cmake
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9..0
NICE!!! 就是这么简单,从上到下,一步一步粘贴复制,GCC就装好啦
添加库文件问题处理
问题:缺少高版本的libstdc++.so的问题
apt: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found need by xxx`
首先先查看/usr/lib/x86_64-linux-gnu/libstdc++.so.6这个库的信息
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
查询到的最高版本是GLIBCXX_3.4.19,缺少GLIBCXX_3.4.21
在其他系统中搜此版本的库文件
sudo find / -name "libstdc++.so.6*"
找到之后查看是否需要的版本
strings libstdc++.so.6 | grep GLIBCXX
ll查看它链接的具体库文件
ll libstdc++.so.6
查询到 libstdc++.so.6.0.21 (这个支持GLIBCXX_3.4.21),
将这个库拷贝到对应位置,建立软连接即可
cp /lib/libstdc++.so.6.0.21 /usr/lib64/
rm /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6