首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么流行的c++代码静态检查工具推荐吗?

有什么流行的c++代码静态检查工具推荐吗?
EN

Stack Overflow用户
提问于 2012-08-18 16:51:54
回答 2查看 999关注 0票数 0

我们团队中有几个新的c++人员在工作,所以每天都有太多丑陋的代码!我讨厌那些使用只读字符串,STL容器作为参数的函数,但是没有常量引用!我疯了!

有没有静态代码检查器可以发现这些丑陋的代码?我需要在我们的makefile中使用这样的工具。

EN

回答 2

Stack Overflow用户

发布于 2012-08-18 17:29:02

是的,“坏代码”不太可能通过自动化工具来防止。

对于我自己来说,我在工作场所也是这样做的,我总是打开尽可能多的警告(通常是通过启用高级别的警告,只关闭“明显愚蠢”的警告;g++是唯一的例外,因为它没有打开所有东西的选项,所以我会使用-Wall、-Wextra和一大堆其他-W,偶尔会浏览一下手册,看看是否添加了新的警告)。

我也使用-Werror或/WX进行编译。不幸的是,虽然Linux和Windows头文件现在看起来相当干净,但我收到了一些愚蠢的警告,比如糟糕的数据类型转换或boost头文件中不恰当地使用了宏。第三方库通常是写得很糟糕的警告。

至于静态分析工具,我确实尝试过cppcheck和clang (它们都是免费的,这就是我尝试它们的原因)。我对它们中的任何一个都不感兴趣;我仍然计划在我的构建软件中添加一些对其中一个或两个的支持,但它的优先级相当低。两个中的一个(不记得是哪一个)实际上找到了一些东西:一个不必要的赋值,任何一个像样的优化器都会删除它。我不认为我是一个完美的0-bug开发人员,所以我责怪这些工具。尽管如此,我还是删除了这个任务:-)

如果我没记错的话,商业VisualStudio版本也有代码分析功能(在家里我更喜欢使用Express,而在工作中我只能使用MacOS开发);也许那个更好。或者其他商业工具之一;毕竟,他们必须提供一些东西来换取他们的钱。

还有一些额外的免费工具我还没有尝试过;我不知道http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2FC.2B.2B列表有多完整,但我希望最终能尝试所有可以处理C++的免费工具。

特别是对于你的问题,Wi8kipedia将"cpplint“描述为"cpplint实现了谷歌认为是C++编码的”最佳实践“。我不知道这是什么意思,但是维基百科的页面上有一个“谷歌C++风格指南”的链接。或者你可以试一试,看看它有什么问题:-)

此外,我可能不想将这样的工具添加到Makefile中(除非您的意思是人们仍然必须调用"make check“才能实际运行它)。在允许新的提交之前将其添加到源代码存储库中以检查新的提交可能太耗时了(代码分析几乎是“使用许多额外的工具进行编译”,所以它需要大量的时间),但是您可以不时地自动运行它。

票数 3
EN

Stack Overflow用户

发布于 2012-08-18 16:56:04

parfait或lint,谷歌“静态分析工具”

如果您正在使用GCC获取这些警告,您可能可以通过使用-Wall标志来获取其中的一些警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12017247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档