gpt4 book ai didi

c++ - -std=c++11 在 g++ 命令行中的位置

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:19 26 4
gpt4 key购买 nike

我只是好奇标准选择开关(-std=c++11 对于我的情况)的位置是否与 g++ 命令行相关。原因在于:

g++   -ftest-coverage -fprofile-arcs -std=c++11 
-ansi -fpermissive -finline-functions -Wno-long-long
-fvisibility-inlines-hidden -m64 -Wall -Wextra
-g -o CMakeFiles/common.dir/cryptoclass.cpp.o
-c /home/work/common/cryptoclass.cpp

不编译,而下面的:

g++   -ftest-coverage -fprofile-arcs
-ansi -fpermissive -finline-functions -Wno-long-long
-fvisibility-inlines-hidden -m64 -Wall -Wextra
-g -o CMakeFiles/common.dir/cryptoclass.cpp.o
-std=c++11 -c /home/work/common/cryptoclass.cpp

编译。唯一的变化是 -std=c++11 被移到了开关的末尾。

g++ 给出以下警告:

error: #error This file requires compiler and 
library support for the ISO C++ 2011 standard.
This support is currently experimental, and must
be enabled with the -std=c++11 or -std=gnu++11 compiler options.

版本:

g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4

最佳答案

根据 documentation , -ansi 选项启用 c++-98/c++-03 标准。

如果设置了多个标准选项,则后一个选项会覆盖前一个。这同样适用于其他相互排斥的选项,例如优化级别。

关于c++ - -std=c++11 在 g++ 命令行中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com