我已经在Windows中编写了示例Makefile,该示例使用Visual Studio 2017中的cl选项。它会导致如下警告 cl:命令行警告D9002:忽略未知选项'-std = c ++ 11'
请按照以下步骤重现该问题。
cl <filename>.cpp /std=c++11
这是否意味着VS2017默认情况下将支持c ++ 11,所以cl选项省略了c ++ 11标志(或)是否还有其他东西可以通过cl.exe发出警告?
有人可以澄清这个问题吗?
谢谢
哈里
答案 0 :(得分:1)
请参见here。 cl
仅接受选项/std:c++14
,/std:c++17
和/std:c++latest
。
默认情况下已启用C ++ 11功能。
答案 1 :(得分:1)
检查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:...
,而不是-std=...