注:编译源代码工程,会要求gcc的更高版本,而CentOS 7默认的软件源中没有提供这么新的版本,你可以通过以下方法来安装更新的GCC版本。
与GCC版本有关的常见问题:
问题1:
subprocess.CalledProcessError: Command ‘[‘which‘, ‘c++‘]‘ returned non-zero exit status 1。
问题2:
c++: 错误:unrecognized command line option ‘-std=c++17’。
查看GCC的版本
gcc --version
g++ --version
查看CentOS的版本
cat /etc/redhat-release
查看CentOS的仓库是否包括SCL
# cd /etc/yum.repos.d/
注:发现没有SCL仓库
安装SCL仓库
sudo yum install -y centos-release-scl
或手动构建
vim CentOS-SCLo-scl-rh.repo
里面内容放:
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址,无法连接,需要替换为阿里云。
centos-7-sclo-x86_64-rh安装包下载_开源镜像站-阿里云
安装DevToolset-9
DevToolset-9包含了GCC 9和其他开发工具。使用以下命令来安装它:
# sudo yum install -y devtoolset-9
永久启用DevToolset-9
# echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc
# source ~/.bashrc
查看GCC的版本
gcc --version
g++ --version