c++:错误:无法识别的命令行选项‘-std=c++17’

问题描述

[ 25%] Building CXX object CMakeFiles/linreg-dlib.dir/linreg_dlib.cc.o
/usr/bin/c++   -I/home/jeong/다운로드/dlib-master -I"/home/jeong/바탕화면/9781789955330_Code/Chapter01/dlib_samples/path to dlib install dir/include"  -std=c++17 -msse3 -fopenmp -Wall -Wextra   -o CMakeFiles/linreg-dlib.dir/linreg_dlib.cc.o -c /home/jeong/바탕화면/9781789955330_Code/Chapter01/dlib_samples/linreg_dlib.cc
c++: error: unrecognized command line option ‘-std=c++17’
make[2]: *** [CMakeFiles/linreg-dlib.dir/linreg_dlib.cc.o] error 1
make[2]: Leaving directory `/home/jeong/바탕화면/9781789955330_Code/Chapter01/dlib_samples'
make[1]: *** [CMakeFiles/linreg-dlib.dir/all] error 2
make[1]: Leaving directory `/home/jeong/바탕화면/9781789955330_Code/Chapter01/dlib_samples'
make: *** [all] error 2

c++:错误:无法识别的命令行选项‘-std=c++17’ 我正在使用 dlib 库运行练习代码。 它运行直到'cmake',但在'make'过程中出现上述错误。需要更新 gcc?

gcc 版本如下所示。 gcc (GCC) 4.8.5 20150623(红帽 4.8.5-39)

如果需要更新版本怎么办 我想知道。

解决方法

GCC 发布页面 (https://www.gnu.org/software/gcc/releases.html) 表示 gcc 4.8.5 于 2015 年 6 月 23 日发布。

GCC 开发人员真的很棒,但在 C++17 完成前两年提供 C++17 支持是非常好的。

该编译器可能支持 -std=c++1z 的某些 C++17 功能。

,

正如其他人所说,您的编译器对于 C++17 来说太旧了。

听起来您使用的是 RHEL 7 或 CentOS 7。这些操作系统支持使用更新版本的编译器和工具链(除了标准系统编译器)安装“开发人员工具集”。 这可能是您的一个选择。

对于 RHEL 7,请参阅:https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/10/

对于 CentOS,请参阅:https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/