▚ 01 介绍
🌼 截止到2020年,C/C++标准多次更迭,如c++98, c++03, c++11, c++14, c++17, c++20。为了使用这些新标准,我们应根据需求来更新GCC。
-
本教程以
非root用户
使用源码安装gcc-8.3.0
。
▚ 02 安装说明
可查看解压后的gcc文件中的contrib/download_prerequisites,以确定所需的依赖库及其版本信息。如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/7782b8ddf09af3e7ac5993c5324bb19c.png#pic_center)
- 1. 全程共使用5个安装包(
1个gcc,4个依赖包
)。 - 2. 首先,安装依赖包(注意它们的安装顺序)。
- 3. 然后,安装
gcc
。(源码可在 https://gcc.gnu.org/ 或者 https://ftp.gnu.org/gnu/gcc/) 查找并下载。 - 4. 最后,配置环境变量。
为了避免读者搜索各种包的繁琐过程,特将gcc-8.3.0及依赖包等放在 GCC源码+依赖包 (如截图所示)。
🍓 依赖包下载地址,可以方便的查找适合或者最新的包:
- 【gmp】👉 https://ftp.gnu.org/gnu/gmp/
- 【isl】👉 https://gcc.gnu.org/pub/gcc/infrastructure/
- 【mpc】👉 https://ftp.gnu.org/gnu/mpc/
- 【mpfr】👉 https://ftp.gnu.org/gnu/mpfr/
▚ 03 依赖包的安装
假设我们将gcc及其依赖包,都安装在
/home/dabai
普通用户目录下。
3.1 安装gmp
$ cd /home/dabai
$ tar -xzvf gmp-4.3.2.tar.gz
$ cd gmp-4.3.2
$ ./configure --prefix=/home/dabai/gmp-4.3.2
$ make && make install
3.2 安装mpfr
$ cd /home/dabai
$ tar -xzvf mpfr-2.4.2.tar.gz
$ cd mpfr-2.4.2
$ ./configure --prefix=/home/dabai/mpfr-2.4.2 --with-gmp=/home/dabai/gmp-4.3.2
$ make && make install
P.S. 若遇到问题,请参考下面的 “06 扫雷”篇。
3.3 安装mpc
$ cd /home/dabai
$ tar -xzvf mpc-1.0.1.tar.gz
$ cd mpc-1.0.1
$ ./configure --prefix=/home/dabai/mpc-1.0.1 --with-gmp=/home/dabai/gmp-4.3.2 --with-mpfr=/home/dabai/mpfr-2.4.2
$ make && make install
3.4 安装isl
$ cd /home/dabai
$ mkdir isl #因isl不支持当前目录安装,所以需新建一个
$ tar -xzvf isl-0.24.tar.gz
$ cd isl-0.24
$ ./configure --prefix=/home/dabai/isl --with-gmp-prefix=/home/dabai/gmp-4.3.2
$ make && make install
▚ 04 GCC安装
$ cd /home/dabai
$ tar -xzvf gcc-8.3.0.tar.gz
$ cd gcc-8.3.0
$ mkdir build && cd build
$ ../configure --prefix=/home/dabai/gcc-8.3.0 --with-gmp=/home/dabai/gmp-4.3.2 --with-mpfr=/home/dabai/mpfr-2.4.2 --with-mpc=/home/dabai/mpc-1.0.1 --with-isl=/home/dabai/isl --enable-checking=release --enable-languages=c,c++ --disable-multilib
$ make && make install
▚ 05 配置环境变量
$ cd ~
$ vim .bashrc
- 在.bashrc中添加如下命令:
export PATH=/home/dabai/gcc-8.3.0/bin:$PATH
- 保存并退出.bashrc,然后在shell执行:
$ source .bashrc
- 最后,验证GCC是否安装成功:
$ gcc --version
▚ 06 扫雷
- 遇到的问题:安装过程中,可能会出现类似这样的情况
error while loading shared libraries: libmpfr.so.6: cannot open shared object file: No such file or directory
- 解决方法: 上述3.2步骤已经成功完成后,理论上
libmpfr.so.6
会存在/home/dabai/mpfr-2.4.2/lib
目录中。此时,我们可以手动添加该库的所在路径,即使用命令export LD_LIBRARY_PATH=/home/dabai/mpfr-2.4.2/lib
即可。
▚ 07 拓展
🌺 简单介绍升级到更高的
gcc
版本gcc-11.3.0
,所需要的依赖包版本,并提供一键下载的链接。
- gmp-6.1.2
- mpfr-4.0.2
- mpc-1.1.0
- isl-0.24
- 🍭【gcc-11.3.0及其依赖包】下载链接为:https://download.csdn.net/download/Xminyang/85545324
▚ 参考材料
![](https://i-blog.csdnimg.cn/blog_migrate/138ec07a2e324dcb20f96ba06e79c4f2.png#pic_center)