[这是一个更普遍的问题,并且根据设置编译器选项和使用静态代码分析工具的经验进行讨论。]
目前,我使用-Werror在编译期间将所有警告标记为错误。
我打算使用c ++的静态代码分析工具。首先,我将使用CppCheck,它具有此处列出的功能:http://cppcheck.sourceforge.net/#features,如下所示:
我的问题是,如果我解决了编译器标记的所有错误(通过-Werror检测到),那么就不会解决CppCheck列出的所有这些问题(功能),在构建的编译阶段已经涵盖了-deploy工作流程?
更一般地说,将编译器选项设置为最严格的" level(如在这个答案https://stackoverflow.com/a/401276/712248中)标记可以被静态分析工具(如CppCheck)检测到的所有问题(包括/排除误报)?所以,从本质上讲,如果我使用最严格的编译器选项,那么我不需要使用静态分析工具吗?
答案 0 :(得分:1)
当然,两者之间存在很多重叠,但预计专用分析仪会出现更多问题。真实和误报。静态分析器可以使用较慢的技术,并且通常仅在发布之前定期运行,因为在大型代码库中,它们可能具有非常长的运行时间。速度差异是我们有两个工具而不是一个工具的唯一真正原因。