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

Posted

技术标签:

【中文标题】c++:错误:无法识别的命令行选项“-std=c++17”【英文标题】:c++: error: unrecognized command line option ‘-std=c++17’ 【发布时间】:2021-05-07 07:45:48 【问题描述】:
[ 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 4.8.5 20150623'。适合您的 RHEL 或旧 CentOS。我当前运行的发行版默认为 gcc 10.2,是的,它支持 C++17。 你可以或者尝试升级你的工具链(RHEL 有一些 repos)或者尝试旧版本的dlib C++ Standards Support in GCC"C++17 features are available since GCC 5"(4.8.5支持-std=c++14(部分支持)为最新) 哦,谢谢。我更新了 gcc 并解决了这个问题! 【参考方案1】:

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 功能。

【讨论】:

哦,谢谢。我更新了 gcc 并解决了这个问题!【参考方案2】:

正如其他人所说,您的编译器对于 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/

【讨论】:

哦,谢谢。我更新了 gcc 并解决了这个问题!

以上是关于c++:错误:无法识别的命令行选项“-std=c++17”的主要内容,如果未能解决你的问题,请参考以下文章

g ++错误无法识别的命令行选项

R gputools:gcc:错误:无法识别的命令行选项'-Wp'

g++:错误:无法识别的命令行选项“-mt”

gcc:错误:无法识别的命令行选项“-mfpu=neon-vfpv4”

gcc mismatched-tags 选项给出“无法识别的命令行选项”

mips64el-linux-android-g++:错误:无法识别的命令行选项“-mfpu=neon”