怎么让vc编译器cl命令行编译时支持 c++ 11?
cl mm.cpp -std=c++11 //这样吗?
关注引自免费微信小程序:皆我百晓生
在Visual Studio的命令行工具(即cl编译器)中启用C++11标准,你需要在命令行参数中指定/std:c++11。但是,这个选项在较旧版本的Visual Studio中可能不适用。为了确保兼容性,最好同时指定平台工具集版本,例如v140(这是Visual Studio 2015的工具集版本),这将告诉编译器使用与该版本兼容的最新语言特性。
以下是完整的命令格式:
cl mm.cpp /TP /std:c++11 /Zc:__cplusplus /D "_CRT_SECURE_NO_WARNINGS" /MDd /Od /EHsc /RTC1 /I "path\to\your\include\directory" /link "path\to\your\library\directory\libname.lib"
这里解释一下关键参数:
/TP: 指定输入文件是C++源文件,而不是C源文件。/std:c++11: 启用C++11标准。/Zc:__cplusplus: 显示当前使用的C++标准版本。/D "_CRT_SECURE_NO_WARNINGS": 禁止安全警告,这些警告在使用某些C库函数时会出现。/MDd: 使用多线程调试版的运行时库。/Od: 关闭优化。/EHsc: 异常处理模型设置为有捕获的异常( seh, sc )。/RTC1: 开启一些运行时检查,比如空指针解引用、数组越界等。/I "path\to\your\include\directory": 添加额外的头文件搜索路径。/link "path\to\your\library\directory\libname.lib": 链接额外的库文件。请替换"path\to\your\include\directory"和"path\to\your\library\directory\libname.lib"为实际的目录和库文件名。如果你不需要链接任何外部库,可以省略 /link 参数。
执行上述命令后,编译器会根据指定的选项编译你的C++代码并生成可执行文件。