我最近发现了 clang++ 的静态分析器功能,它非常适合用细齿梳检查我的代码以发现潜在的错误。我只是在我的 Makefile 中取消注释这一行:
CXXFLAGS += --analyze -Xanalyzer -analyzer-output=text
等等,我正处于深度错误检查模式。
然而,与此有关的一个小问题是,只要分析器在特定的 .cpp 文件中没有发现任何问题,就不会生成任何 .o 文件。
通常这没什么大不了的(我总是可以重新评论上面的行来构建一个实际的可执行文件),但通常当我看到分析器警告时,我想做的第一件事就是尝试解决潜在的问题然后重新运行make。
...这行得通,但是由于没有生成 .o 文件,因此 make 将从头开始重新分析所有 .cpp 文件,而不仅仅是自上次运行以来我实际修改的 .cpp 文件。这意味着我最终会花费大量时间重新检查未更改的 .cpp 文件。
我的问题是,有什么方法可以让静态分析器输出一个 .o 文件(它不必是有效的目标文件,只要是具有更新时间戳的任何文件),以便 Make 知道“干净” .cpp 文件不需要重新处理?(即使 Make 的工作方式与正常编译时相同)