Centos7 – 安装高版本的gcc/g++,多版本切换以及配置环境
1 Centos7的默认gcc版本与安装g++
Centos7默认安装了gcc,但是默认没有安装g++,
我们可以在命令行输入
g++
如果出现
-bash: g++: command not found
则说明没有安装g++,可以通过以下命令安装
yum install -y gcc gcc-c++
这个时候使用以下命令查看gcc和g++的版本
gcc --version
g++ --version
gcc和g++的版本都为4.8.5,虽然GNU官方文档说GCC 4.8.1就是支持C++11第一个完整版本,不过经过这么多年的实测,C++11的一些版本在GCC 4.8.x这个大版本号支持的不是特别好,所以如果想完整使用C++11/C++14,这里建议使用GCC 10,因为从GCC 6.1到GCC 10(包含)的C++默认语言标准就是C++14,完整支持C++11,下面以在Centos7中安装GCC 10说明如何在Centos 7中安装高版本的gcc/g++编译器。
2 Centos 7安装高版本的gcc/g++
2.1 切换用户
如果当前用户不是root,则切换到root用户,使用以下命令
su -root
2.2 安装centos-release-sc
依次运行以下命令安装centos-release-scl
sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm
2.3 安装对应版本的devtoolset
使用以下命令安装GCC 10
sudo yum install devtoolset-10-gcc-c++
如果要安装其他版本的GCC,则使用
# gcc/g++ 10,依次类推
sudo yum install devtoolset-10-gcc-c++
# gcc/g++ 9
sudo yum install devtoolset-9-gcc-c++
# gcc/g++ 8
sudo yum install devtoolset-8-gcc-c++
# gcc/g++ 7
sudo yum install devtoolset-7-gcc-c++
# gcc/g++ 6
sudo yum install devtoolset-6-gcc-c++
也可以安装多个版本的devtoolset,多个版本的devtooset可以共存,安装目录位于/opt/rh/devtoolset-*/
目录下。
2.4 切换gcc/g++版本
安装完devtoolset后,比如安装的devtoolset-10-gcc-c++
,则在/opt/rh/devtoolset-10/
目录下有一个enable
,我们可以有两种方式完成不同gcc版本的切换。
第1种方式
# *代表版本号
scl enable devtoolset-* bash
比如是devtoolset-10-gcc-c++
,则切换命令为
scl enable devtoolset-10 bash
第2种方式
source /opt/rh/devtoolset-10/enable
使用上述两种命令之后是切换到对应的gcc/g++版本,我们可以使用
gcc --version
g++ --version
查看当前gcc/g++版本是否为gcc10/g++10,如果是则说明版本切换成功,然后就可以使用高版本的gcc/g++编译代码了,不过上述两条命令只对当前的会话有效,如果重启系统或者退出会话,则gcc/g++版本则会回到默认的4.8.5版本,如果要永久性的指定默认的gcc、g++版本为高版本的gcc/g++版本,则使用下一个小节方法。
2.5 永久使用高版本的gcc/g++
旧版本gcc运行的在/usr/bin/gcc
,所以将该目录下的gcc/g++
替换为安装的新版本gcc软连接即可,依次执行以下命令
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-10/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-10/root/bin/g++ /usr/bin/g++
通过上面的两个命令可以永久的将gcc/g++版本切换为gcc10/g++10,即使系统重启也不会回到之前的4.8.5。
2.6 在CMake中使用高版本的gcc/g++
如果只是想在当前会话中让CMake使用高版本的gcc/g++,则在当前会话中使用
export CC=/opt/rh/devtoolset-10/root/bin/gcc
export CXX=/opt/rh/devtoolset-10/root/bin/g++
设置CC和CXX的环境变量。
如果想永久让CMake使用高版本的gcc/g++,则需要修改系统环境变量
nano /etc/profile
# 在/ect/profile增加下面两行
export CC=/opt/rh/devtoolset-10/root/bin/gcc
export CXX=/opt/rh/devtoolset-10/root/bin/g++
# 生效
source /etc/profile
我们也可在CMakeLists.txt中显式指定C和C++编译器,下面是无缓存版本
set(CMAKE_C_COMPILER /opt/rh/devtoolset-10/root/bin/gcc)
set(CMAKE_CXX_COMPILER /opt/rh/devtoolset-10/root/bin/g++)
下面是强制缓存版本
set(CMAKE_C_COMPILER /opt/rh/devtoolset-10/root/bin/gcc CACHE PATH "gcc" FORCE)
set(CMAKE_CXX_COMPILER /opt/rh/devtoolset-10/root/bin/g++ CACHE PATH "g++" FORCE)
参考
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Centos7 – 安装高版本的gcc/g++,多版本切换以及配置环境
原文链接:https://www.stubbornhuang.com/2777/
发布于:2023年09月01日 13:59:15
修改于:2023年09月08日 14:20:02
当前分类随机文章推荐
- Linux - 编译Crypto++加密库 阅读2109次,点赞1次
- Ubuntu编译安装FFmpeg+libx264以及编译+安装Opencv+FFmpeg保姆教程 阅读3697次,点赞1次
- Linux - 创建软链接、删除软链接、修改软链接 阅读47次,点赞0次
- Docker - 镜像操作入门指南 阅读56次,点赞0次
- nginx - 封禁IP和封禁IP段 阅读16次,点赞0次
- Docker - Linux更换国内镜像源 阅读52次,点赞0次
- Centos7 - 防火墙操作以及开启和关闭特定端口 阅读4621次,点赞2次
- Centos7 - frp内网穿透,访问内网web服务/访问内网websocket服务 阅读3301次,点赞1次
- Centos7 - 安装高版本的gcc/g++,多版本切换以及配置环境 阅读72次,点赞0次
- Docker - 在宿主机与容器之间拷贝文件或者文件夹 阅读79次,点赞0次
全站随机文章推荐
- Centos7 编译C++项目错误解决 : terminate called after throwing an instance of 'std::regex_error' 阅读2824次,点赞1次
- 资源分享 - Handbook of Discrete and Computational Geometry, Second Edition 英文高清PDF下载 阅读2362次,点赞0次
- 资源分享 - WebGL Gems - Learn How To Create 3D Worlds And Games For Modern Web Browsers, First Edition 英文高清PDF下载 阅读1488次,点赞0次
- 资源分享 - Quaternions for Computer Graphics , First Edition 英文高清PDF下载 阅读2480次,点赞0次
- 姿态估计之human3.6m数据集骨骼关节keypoint标注对应 阅读11404次,点赞11次
- Duilib - 程序开机自启动 阅读2156次,点赞0次
- C++ - std::numeric_limits
简介与使用,用于获取指定数据类型的最大值与最小值 阅读995次,点赞0次 - Python - onnx导出模型出现RuntimeError: Exporting the operator pad_sequence to ONNX opset version 13 is not supported错误 阅读849次,点赞0次
- 资源分享 - Simulating Humans - Computer Graphics Animation and Control 英文高清PDF下载 阅读1434次,点赞0次
- 资源分享 - 深度学习 花书 AI圣经(Deep Learning) 英文pdf下载 阅读3602次,点赞2次
评论
169