You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何记录(几乎)所有Visual C++命令及命令行开关,并查看构建命令?

记录Visual C++构建命令并生成类似compile_commands.json的方法

使用Visual Studio IDE构建时记录命令

  • 开启详细构建日志:
    1. 打开项目属性,依次进入「配置属性」→「C/C++」→「命令行」
    2. 若需要显示头文件包含关系,可在「附加选项」里加/showIncludes;接着切到「常规」选项卡,把「详细程度」设为「诊断」(或「详细」,诊断级别会输出完整命令行参数)
    3. 重新构建项目,「输出」窗口会显示所有cl.exe的完整命令行。右键输出窗口选「全部保存」就能把日志导出成文本文件。

使用命令行构建时记录命令

  • 用MSBuild构建:
    执行命令时加/v:detailed或/v:diagnostic参数,比如:
    msbuild YourProject.vcxproj /t:Rebuild /v:diagnostic
    
    要保存日志的话直接重定向到文件:
    msbuild YourProject.vcxproj /t:Rebuild /v:diagnostic > build_log.txt
    
  • 用nmake构建:
    要么修改Makefile开启详细输出,要么执行时带/v参数(详细输出)或/n参数(只显示命令不执行),比如:
    nmake /f YourMakefile.mak /v > build_log.txt
    

生成类似compile_commands.json的结构化命令记录

Visual Studio本身没法直接生成这个文件,但有两种可行方法:

  1. 用CMake生成项目:
    如果你的项目是CMake管理的,生成VS项目时加-DCMAKE_EXPORT_COMPILE_COMMANDS=ON参数,CMake会自动在构建目录生成compile_commands.json,里面包含所有编译命令的详细参数。
  2. 解析构建日志手动生成:
    写个Python或PowerShell脚本,解析之前保存的构建日志,提取cl.exe的命令行,按compile_commands.json的格式整理。格式示例:
    [
      {
        "directory": "C:\\YourProject\\src",
        "command": "cl.exe /c /EHsc /I\"include\" main.cpp",
        "file": "main.cpp"
      }
    ]
    
    解析时要注意提取每个编译命令的工作目录、完整命令和对应源文件。

内容的提问来源于stack exchange,提问作者Oliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 08:43:09