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”的主要内容,如果未能解决你的问题,请参考以下文章
R gputools:gcc:错误:无法识别的命令行选项'-Wp'
gcc:错误:无法识别的命令行选项“-mfpu=neon-vfpv4”