1. 引言
系统: ubuntu 1804
点我进入清华源-GCC链接:
https://mirror.tuna.tsinghua.edu.cn/gnu/gcc/
2. 下载编译指定版本gcc
2.1 下载一个低版本g++
- 为了保证后续安装gcc能编译通过,
且安装g++同时也会安装gcc!
sudoapt-getinstall g++
sudoapt-getinstall libgmp-dev
sudoapt-getinstall libmpfr-dev
sudoapt-getinstall libmpc-dev
2.2 下载指定gcc
下载从清华源所需要的gcc版本,作者这边选择的是
11.2.0
,
此处版本不同,后续的指令文件名需要选择自己的版本文件名。
mkdir gcc &cd gcc
wget https://mirror.tuna.tsinghua.edu.cn/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
- 解压并且进入到当前目录
tar-zxvf gcc-11.2.0.tar.gz -C ./
cd gcc-11.2.0/
- 自动下载所需依赖包
./contrib/download_prerequisites
附上该步骤成功安装四个依赖截图。
- 可能会报错:
sha512sum: 警告:1 个校验和不匹配 error: Cannot verify integrity of possibly corrupted file gmp-6.1.0.tar.bz2
- 解决方法: 网络原因,下载不了
gmp-6.1.0.tar.bz2
, 到http://gcc.gnu.org/pub/gcc /infrastructure/下载对应压缩包放在gcc-11.2.0/
下即可,*
- 创建一个目录
/home/wjl/work/gcc112
, 保存gcc11.2生成的Makefile
文件。
mkdir-p /home/wjl/work/gcc112
./configure --prefix=/home/wjl/work/gcc112 --enable-languages=c,c++ --enable-checking=release --disable-multilib
附上该步骤成功生成Makefile文件图。
使用
make
指令编译,该过程需要等待30-70分钟,
-j4
代表使用并行4个线程处理,可以根据自己的电脑CPU性能选择2, 4, 8…。
make-j8
附上该步骤成功编译完成图。
- 安装gcc11.2
makeinstall
- 第一种: 永久加入到系统环境变量中(推荐)
sudovim ~/.bashrc
# 在最后加入如下代码
PATH=/home/wjl/work/gcc112/bin:$PATH
LD_LIBRARY_PATH=/home/wjl/work/gcc112/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/home/wjl/work/gcc112/lib64:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/home/wjl/work/gcc112/libxec:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/home/wjl/work/gcc112/include:$INCLUDE
source ~/.bashrc
- 第二种: 只为当前终端导入的gcc11.2环境配置,两种方式二选一即可!!!
exportPATH=/home/wjl/work/gcc112/bin:$PATHexportLD_LIBRARY_PATH=/home/wjl/work/gcc112/lib:$LD_LIBRARY_PATHexportLD_LIBRARY_PATH=/home/wjl/work/gcc112/lib64:$LD_LIBRARY_PATHexportLD_LIBRARY_PATH=/home/wjl/work/gcc112/libxec:$LD_LIBRARY_PATHexportLD_LIBRARY_PATH=/home/wjl/work/gcc112/include:$INCLUDE# 更新环境配置source ~/.bashrc
- 查看gcc版本
gcc -v
附上成功安装gcc11.2图。
2.3 软连接以及管理g++版本
- update-alternatives:
--install 需要 <链接> <名称> <路径> <优先级>
# 优先级数字越大,越优先sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10sudo update-alternatives --install /usr/bin/gcc gcc /home/wjl/work/gcc112/bin/gcc 20sudo update-alternatives --install /usr/bin/g++ g++ /home/wjl/work/gcc112/bin/g++ 20
- 手动切换gcc与g++版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
- 找一个程序编译,成功截图如下
3.如果最后make编译报如下错误
configure: error: run `make distclean' and/or `rm ./config.cache' and start over
make[1]: *** [configure-fixincludes] Error 1
make[1]: Leaving directory `/home/lixuezd/local/gcc'
make: *** [all] Error 2
如果遇见该报错,建议直接
rm -rf
删除gcc整个文件夹,因为其存在缓存问题,重新解压gcc压缩包,再来一遍即可。
4.安装GDB11.1
4.1 下载gdb
点我进入清华源-GCC链接:
http://ftp.gnu.org/gnu/gdb/
下载gdb版本,作者这边选择的是
11.1
,
此处版本不同,后续的指令文件名需要选择自己的版本文件名。
mkdir-p ~/gdb &cd ~/gdb
wget http://ftp.gnu.org/gnu/gdb/gdb-11.1.tar.gz
tar-zxvf gdb-11.1.tar.gz -C ./
cd gdb-11.1/
4.2 编译安装gdb
- 编译时间有点长,我这边大约20分钟左右。
./configure
sudomake-j8sudomakeinstall
- 将gdb拷贝到
/usr/bin/gdb
sudocp-r gdb-11.1/ /usr/bin/gdb
gdb -v
附上成功安装截图!!!
- 如果有报错(点我进入解决方案):
gdb: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by gdb)
gdb: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by gdb)
版权归原作者 锦鲤AI幸运 所有, 如有侵权,请联系我们删除。