C++11 windows makefile中的cl选项是否接受-std=c++;11旗?
我已经在windows中编写了示例Makefile,它使用visual studio 2017中的cl选项。它会导致如下警告 cl:命令行警告D9002:忽略未知选项'-std=c++11' 按照以下步骤重现问题C++11 windows makefile中的cl选项是否接受-std=c++;11旗?,c++11,makefile,visual-studio-2017,C++11,Makefile,Visual Studio 2017,我已经在windows中编写了示例Makefile,它使用visual studio 2017中的cl选项。它会导致如下警告 cl:命令行警告D9002:忽略未知选项'-std=c++11' 按照以下步骤重现问题 打开VS2017的开发人员命令提示符 编写任何简单的C++代码并编译使用,然后可以看到警告 cl.cpp/std=c++11 这是否意味着VS2017在默认情况下将支持c++11,所以cl选项忽略c++11标志(或者)是否还有其他东西可以通过cl.exe发出警告 有人能澄清一下这个问
cl.cpp/std=c++11
这是否意味着VS2017在默认情况下将支持c++11,所以cl选项忽略c++11标志(或者)是否还有其他东西可以通过cl.exe发出警告
有人能澄清一下这个问题吗
谢谢
哈里参见cl
仅接受选项/std:c++14
、/std:c++17
和/std:c++latest
默认情况下已启用C++11功能。检查MSVC 2017的
cl.exe/?
输出,我发现:
/std:<c++14|c++17|c++latest> C++ standard version
c++14 – ISO/IEC 14882:2014 (default)
c++17 – ISO/IEC 14882:2017
c++latest – latest draft standard (feature set subject to change)
<代码> /STD: C++标准版
c++14–ISO/IEC 14882:2014(默认)
c++17–ISO/IEC 14882:2017
c++最新版本–最新标准草案(功能集可能会更改)
看来:
- 对于严格的C++11兼容性,没有开关
- 正确的语法是
,而不是/std:…
-std=…
/std:<c++14|c++17|c++latest> C++ standard version
c++14 – ISO/IEC 14882:2014 (default)
c++17 – ISO/IEC 14882:2017
c++latest – latest draft standard (feature set subject to change)