我最近发现clang++的静态分析器功能,针对代码进行细致检查以发现潜在漏洞非常棒。我只需要取消我的Makefile中的这行注释:
CXXFLAGS += --analyze -Xanalyzer -analyzer-output=text
现在我正在进行深度调试。
然而,这个方法有一个小问题。当分析器在某个.cpp文件中没有找到任何问题时,不会生成任何.o文件。
通常情况下这并不是什么大问题(我总是可以重新注释上面的行来构建一个实际的可执行文件),但通常当我看到分析器警告时,我想做的第一件事就是尝试修复潜在的问题,然后重新运行make。
...虽然这样做是可行的,但是由于没有生成.o文件,make将重新从头开始重新分析所有的.cpp文件,而不仅仅是我在上次运行之后实际修改的.cpp文件。这意味着我最终会花费相当多的时间重新检查那些没有改变的.cpp文件。
我的问题是,是否有办法让静态分析器输出一个.o文件(它不必是一个有效的目标文件,只要有一个更新的时间戳即可),以便Make知道“干净”的.cpp文件不需要重新处理?(也就是使Make在进行正常编译时能够正常工作)