我有一个STM32项目,它使用CMake编译并生成compile_commands.json STM32CubeMX生成一个汇编文件(即startup_stm32f103xb.s)并将其添加到编译数据库中。
每当我运行 use-clang-tidy.py 时,它都会尝试分析该文件并返回错误:
D:\git\leany\Core\startup_stm32f103xb.s:28:3: error: expected identifier or '(' [clang-diagnostic-error]
28 | .syntax unified
| ^
我对这个错误并不感到惊讶,因为 clang 尝试将 ASM 文件编译为 C,但我想知道是否可以完全忽略此文件或任何 asm 文件。 另外,我非常希望保持 clang-tidy 作为我的 CI/CD 过程的一部分,因为我想保持我自己的代码(位于 Components/ 中)尽可能干净。 另外,我无法触及 STM32CubeMX 生成的文件,也无法触及它创建的 CMake 文件。
这是代码库:Github
我尝试在项目的根目录创建一个 .clang-tidy 文件,并提及“Checks: "-*"”,但它只是完全取消所有检查,包括位于 Components/
中的检查快速搜索发现了这个 .clang-tidy 文件。也许它会解决您面临的问题。
---
Checks: '*'
HeaderFilterRegex: '.*'
# Exclude assembly files
ExcludeRegex: '.*\.(s|S|asm)$'