编译时遇到问题:c++: 错误:unrecognized command line option ‘-std=c++17’
原因:GCC版本太低(CentOS7直接yum安装的GCC版本为4.8.5)
参考:Linux怎样更新Centos下Gcc版本支持C++17?
解决方案:
# GCC升级到 8以上版本(修改 8 更换其他版本)
sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash
source /opt/rh/devtoolset-8/enable
#替换软连接(不执行的话,尽管查看版本升级了,但仍然报错不支持c++17)
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
mv /usr/bin/c++ /usr/bin/c++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/c++ /usr/bin/c++
#查看版本(8.3.1)
gcc --version
了解GCC版本及对C++版本的支持情况:
GCC Releases
GCC版本对C++的支持情况
C++ Standards Support in GCC