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

Windows Powershell下无需compile_commands.json使用clang-tidy的正确传参方法

在Windows Powershell中正确传递clang-tidy参数解决编译任务错误

问题根源

Windows Powershell的参数解析逻辑与Linux Bash存在差异,主要体现在路径分隔符、=符号的处理上,导致clang-tidy无法正确识别--后的编译参数,进而抛出"expected exactly one compiler job in ''"错误——尽管代码检查功能本身可以正常运行。

修正方案

执行以下调整即可解决问题:

  • 将路径中的反斜杠\替换为正斜杠/(clang在Windows环境下完全支持正斜杠路径,避免Powershell对反斜杠的转义干扰)
  • 将--p=file改为--p file(部分clang-tidy版本在Windows下对=形式的参数解析存在兼容问题)
  • 确保--后的编译参数格式清晰,避免多余空格或截断

修正后的命令示例

clang-tidy -header-filter=.* --p file --quiet "engine/src/liquid/window/Window.cpp" -- --std=c++20 -isystem ./engine/src -isystem ./vendor/Debug/include -isystem ./platform/base/include

额外验证方案

如果问题仍存在,可以尝试为--后的所有编译参数添加整体引号,确保Powershell完整传递参数:

clang-tidy -header-filter=.* --p file --quiet "engine/src/liquid/window/Window.cpp" -- "--std=c++20 -isystem ./engine/src -isystem ./vendor/Debug/include -isystem ./platform/base/include"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:09:55