我正在将当前使用 gcc 编译的项目移至 clang,
并有一堆 gcc 没有生成的警告(-Winconsistent-missing-override
). clang-tidy
致力于修复这些错误*.cpp
文件,但是它不触及hpp
文件,因为在数据库中找不到编译命令(正如我所期望的)。
我在用着ninja
构建项目并ninja -t compdb cc cxx > .build/compile_commands.json
生成编译数据库。我尝试过运行:
clang-tidy-3.6 -p .build/ \
$(find src/ -name *.cpp) \
$(find src/ -name *.hpp) \
--checks=misc-use-override --fix
修复错误。它拒绝触及头文件,并抱怨:
Skipping .../src/header/file.hpp. Compile command not found.
我通过指定它来工作--header-filter=src/
选项。
有趣的是,修复程序最终被应用了多次,导致输出如下:
void f() override override override override override;
我通过运行解决了这个问题clang-tidy
分别在每个源文件上。另请注意<build-path>
指定为-p
还必须包含.clang-format
要应用的样式配置。
这是我当前的命令迭代:
find src/ -name '*.cpp' -exec \
clang-tidy-3.6 -p . --header-filter=src/ {}
--checks=misc-use-override --fix
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)