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

如何让Clang-tidy忽略STM32汇编文件且保留自有代码检查?

解决Clang-Tidy分析STM32汇编文件报错的方案

方案1:运行use-clang-tidy.py时指定目标文件

直接限定脚本仅处理Components/目录下的C源文件和头文件,完全避开汇编文件:

python use-clang-tidy.py Components/**/*.c Components/**/*.h

如果还有其他需要检查的非汇编代码目录,直接追加对应的路径匹配规则即可。

方案2:通过.clang-tidy配置精准过滤

在项目根目录的.clang-tidy文件中,通过规则组合实现:全局默认禁用所有检查,仅对Components/目录下的C、头文件启用指定检查,同时排除所有.s后缀的文件:

# 全局默认禁用所有检查
Checks: "-*"
InheritParentConfig: false

# 针对Components目录的专属检查规则
---
Checks: "clang-diagnostic-*,modernize-*,performance-*" # 根据CI/CD需求替换为你需要的检查项
FileFilterRegex: '^Components/.*\.(c|h)$'
NotFileFilterRegex: '\.s$'

注:Checks中的检查项可根据代码规范要求自由调整,比如保留代码风格、性能优化相关的检查。

方案3:过滤编译数据库排除汇编文件

由于无法修改CMake配置,可通过工具事后处理compile_commands.json,删除汇编文件相关条目:

  1. 用jq工具过滤编译数据库(需提前安装jq):
jq 'del(.[] | select(.file | test("\\.s$")))' compile_commands.json > filtered_compile_commands.json
  1. 运行use-clang-tidy.py时指定过滤后的编译数据库:
python use-clang-tidy.py -p filtered_compile_commands.json

该方法能从根源上让Clang-Tidy看不到汇编文件,彻底避免解析报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:49:58