Linux安装gcc 7.3.0编译器详解(CentOS 7 64位系统)

简介: Linux安装gcc 7.3.0编译器详解(CentOS 7 64位系统)

因为原生的CentOS 7自动安装的gcc版本是4.8.5;


yum -y install gcc gcc-c++ kernel-devel


最近工作和学习中需要使用C++17,所以被迫安装新版本的gcc编译器。



一、环境准备


yum -y install gmp-devel                                                           // 编译依赖此库  

yum -y install mpfr-devel                                                          // 编译依赖此库  

yum -y install libmpc-devel                                                        // 编译依赖此库  

yum -y install bzip2                                                                   // 编译依赖此库


wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2   // 编译依赖此库

tar -jxvf isl-0.15.tar.bz2  

cd isl-0.15  

./configure  

make  

make install


编译完成,检查gcc版本:


[root@localhost gcc-7.3.0]# gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper

Target: x86_64-pc-linux-gnu

Configured with: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

Thread model: posix

gcc version 7.3.0 (GCC)


二、gcc源码下载


http://ftp.gnu.org/gnu/gcc/


C++17要求gcc版本在7.1以上



三、gcc源码编译


tar xvf gcc-7.3.0.tar.gz


chmod -R 777 gcc-7.3.0

cd gcc-7.3.0


./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j4 #编译非常耗时间,笔者花了大约50min

make install



四、编译报错及解决方法


问题1:gcc源码自身编译,找不到库的问题


gcc-7.3.0/host-x86_64-pc-linux-gnu/gcc/cc1: error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory
make[3]: *** [s-selftest] Error 1
make[3]: Leaving directory `/root/Downloads/gcc-7.3.0/host-x86_64-pc-linux-gnu/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/root/Downloads/gcc-7.3.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/root/Downloads/gcc-7.3.0'


# 在"/usr/local/lib"目录下,怎么就找不到库libisl.so。


解决方法是:加到"/etc/ld.so.conf"或用"LD_LIBRARY_PATH"。


vi /etc/ld.so.conf  #添加库的路径/usr/local/lib/


然后终端命令行执行ldconfig,再重新编译。



问题2:gcc升级完成之后,编译项目工程时遇到的软连接问题


/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found


解决办法:https://blog.csdn.net/libaineu2004/article/details/77100132



五、笔者cmake版本是3.13.0,平时习惯用Qt Creator作为IDE开发项目。gcc升级之后,相应的配置需要调整:


image.png


调整为:


image.png



---


参考文献:


https://www.cnblogs.com/davygeek/p/8018628.html


姐妹篇:


https://blog.csdn.net/libaineu2004/article/details/49160315


相关文章
|
10月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
638 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
10月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
1224 0
|
12月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
524 5
|
Linux 编译器 开发工具
Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
|
IDE Linux 编译器
【Linux】gcc/g++编译器、make/Makefile自动化构建工具
目录 1.gcc/c++的概念: 2.程序编译过程详解: 2.1程序编译过程:
379 0
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
638 0
|
小程序 Linux 开发工具
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
|
NoSQL IDE Unix
Linux开发工具大全 - 软件包管理器yum | vim编辑器 | gcc/g++编译器 | 自动化构建工具Make/Makefile | gdb调试工具(2)
Linux开发工具大全 - 软件包管理器yum | vim编辑器 | gcc/g++编译器 | 自动化构建工具Make/Makefile | gdb调试工具(2)
405 0
|
NoSQL Linux 开发工具
【Linux】5. 开发工具的使用(gcc/gdb/makefile)
【Linux】5. 开发工具的使用(gcc/gdb/makefile)
304 2