Java有一些非常好的开源静态分析工具,如FindBugs、Checkstyle和PMD。这些工具易于使用,非常有用,可以在多个操作系统上运行,而且是免费的。

商业c++静态分析产品是可用的。虽然拥有这样的产品很棒,但对于学生来说,成本太高了,而且通常很难得到试用版。

另一种选择是找到可以在多个平台(Windows和Unix)上运行的开源c++静态分析工具。通过使用开源工具,可以对其进行修改以适应特定的需求。找到这些工具并非易事。

下面是其他人发现或建议的c++静态分析工具的简短列表。

c++检查http://sf.net/projects/cppcheck/ 呼噜声http://danielwilkerson.com/oink/index.html C和c++代码计数器http://sourceforge.net/projects/cccc/ 夹板(来自答案) Mozilla的猪肉(来自答案)(这现在是Oink的一部分) Mozilla的Dehydra(来自答案) 使用选项- weffc++ for GNU g++(来自答案)

还有哪些大家都知道并可以推荐的可移植的开源c++静态分析工具?

一些相关链接。

http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis http://www.chris-lott.org/resources/cmetrics/ 根据一组编码标准检查C/ c++源代码的免费工具? http://spinroot.com/static/ 选择静态代码分析工具


当前回答

John Carmack在“静态代码分析”这篇有趣的博文中也提到了PVS-Studio。

其他回答

夹板似乎符合C的要求。

如果你没有指定开源,我会说Gimpel Software的PCLint可能是c++中用于静态代码检查的最佳工具之一。但是,当然,它不是开源的。

Mac OSX:

brew install splint

CppCheck是开源和跨平台的。

Mac OSX:

brew install cppcheck

微软的PREFast也可以在Windows驱动套件中使用。7.0版可在此处下载。

微软文档声明它只能针对驱动程序代码运行,但这篇(旧的)博客文章列出了运行它的步骤。也许它可以集成到一个正常的构建过程中?

如果你所说的开源指的是“免费”,那么微软的快速分析是很好的。仅适用于windows的当然。它完全集成在Visual Studio &编译器。例如:

cl /analyze Sample.cpp

您应该尝试一下oo-browser,它与xemacs有很好的集成