MALOUDA-PSA 2024-05-21 23:00 采纳率: 85.6%
浏览 3
已结题

vc编译器cl命令的问题

怎么让vc编译器cl命令行编译时支持 c++ 11?

cl mm.cpp -std=c++11   //这样吗?

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-21 23:00
    关注

    引自免费微信小程序:皆我百晓生

    在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++代码并生成可执行文件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月29日
  • 已采纳回答 5月21日
  • 创建了问题 5月21日