gcc: error: unrecognized command line option ‘-std=c++17’
解决方案:
升级g++, gcc
输入以下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| cd /usr/local/src
wget http://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2 tar -jxvf gcc-5.2.0.tar.bz2
cd gcc-5.2.0
./contrib/download_prerequisites
mkdir build cd build ../configure --prefix=/usr/local/gcc --enable-languages=c,c++ --disable-multilib
make && make install
mv /usr/bin/gcc /usr/bin/gcc_bak ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc mv /usr/bin/g++ /usr/bin/g++_bak ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
gcc --verson g++ --version
|
后续问题:’GLIBCXX_3.4.21’ not found
参考: https://itbilu.com/linux/management/NymXRUieg.html
检查动态库
1
| strings /usr/lib64/libstdc++.so.6 | grep GLIBC
|
输出结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
|
可见,动态库并没有随着g++, gcc的更新而更新
查询动态库的位置
1 2
| find / -name "libstdc++.so*"
|
结果:
1 2 3 4
| /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 ……
|
注意:上述结果根据不同安装设置可能会有差异。
复制后,修改系统默认动态库的指向,即:重建默认库的软连接。
切换工作目录至/usr/lib64
:
删除原来软连接:
将默认库的软连接指向最新动态库:
1
| ln -s libstdc++.so.6.0.21 libstdc++.so.6
|
默认动态库升级完成。重新运行以下命令检查动态库:
1
| strings /usr/lib64/libstdc++.so.6 | grep GLIBC
|
现在输出如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBC_2.3 GLIBC_2.2.5 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
|