A free tool to check C/C++ source code against a set of coding standards?
为Java(Checkstyle,JCSC)找到这样的工具看起来很容易,但是我似乎找不到C / C ++的工具。 我不是在寻找像皮棉一样的静态代码分析器,我只想检查编码标准,例如变量命名,大写,间距,标识,括号放置等。
-
如果您在此处找不到所需的答案,请考虑以下问题:stackoverflow.com/q/10819398/120163
我知道的唯一工具是Vera。但是,由于尚未使用它,因此无法评论它的可行性。 演示看起来很有前途。 strike>
-
我已经测试过了,这很简单。但这有效!
-
我尝试过,但感到失望。它使用标记化的C ++代码,但对于"标识符"仅具有单个标记类型,因此它不会区分类名,成员变量和局部变量。因此,我找不到方法对不同类型的标识符强制使用不同的命名约定。
-
Vera没有一套非常全面的规则-但它们是可扩展的(在TCL中)
-
"可扩展"仅适用于非常简单的任务。由于Veras对C ++的理解很浅,因此任何"深度样式检查"(考虑一条可能的[我不建议这样做]规则:对于每个分配,在同一函数中都有一个对应的解除分配)将必须对适当的C ++知识进行编码,并且真的很难,这意味着它不会发生。
-
固定链接到Vera:bitbucket.org/verateam/vera
-
我只是作了一个快速尝试:它完全放弃了解析,因为遇到了看起来似乎很琐碎的单行注释,该注释跟在名称空间声明的右括号之后。它说我应该"修复"它或排除文件...
-
Vera是不可能从头开始构建的,如果您使用CI系统并且不想使用TCL,则必须这样做。我会通过。
Google代码风格指南中的Google c ++ lint。
-
+1。很好-尽管它确实有非常严格的样式。用自己的规则(例如vera ++)扩展起来并不容易。
-
如果您使用Googles C ++风格,那就太好了:) +1
-
我假设这就是现在所说的cpplint,可以在github.com/google/styleguide/tree/gh-pages/cpplint中找到,上面指向c ++ lint的链接已损坏。
-
仅供参考,要安装,可以使用" pip install cpplint"。然后,您可以只使用" cpplint file.cpp"或" cpplint --recursive"。而不是" ./cpplint.py",这是更可取的IMO。比起至少通过github下载更容易
-
为什么《 Google C ++风格指南》是一项突破性交易
-
我真的很想知道Google的C ++风格指南的缺点,也许是提到的有趣文章@L?uV?nhPhc的链接。对我来说,最重要的问题是该工具是否可以轻松修改以符合不同的过时指南?
我确信这可以在某种程度上帮助cxx检查器。同样,该工具似乎还不错。KWStyle来自Kitware,他们是开发Cmake的人。
-
cxxchecker现在对我来说似乎已经死了。
-
cxx检查器是无效链接。
并非完全符合您的要求,但是我发现,只要所有人都同意astyle可以生成然后自动执行该过程的编码标准,就比较容易。
-
优秀的!谢谢
-
您最好弄清楚ArtisticStyle仅专注于格式化,这当然不是一件坏事:)
尝试使用nsiqcppstyle。这是用于C / C ++的基于Python的编码样式检查器。扩展以添加您自己的规则很容易。
有一个清单。夹板上还有一个假定的C ++前端。
在sourceforge.net上检查universalindentgui。
它具有许多C语言样式检查器,您可以自定义检查器。
-
UniversalIndentGUI它具有实时预览功能,可以导出配置和导出脚本。它非常适合尝试不同的"压头",例如GNU压痕,艺术风格和"无壳"。
我在工作中使用了LDRA工具套件
它用于测试c / c ++代码,但也可以对照MISRA等编码标准进行检查。
-
为什么要对此进行修改?即使LDRA也是静态分析仪-这个问题不是我们想要的-我相信它也能够检查代码是否违反编码标准。
-
这不是一个免费工具。
-
LDRA的费用大约是您的普通车……不是我的免费想法。
检查Metrix ++ http://metrixplusplus.sourceforge.net/。它可能需要一些特定于您需要的扩展。
Hudson也通过同名插件支持cppcheck。
-
cppcheck是一个静态分析工具,不是要查找的问题。
-
自2010年以来,情况可能有所改变:今天,Cppcheck还包含针对样式问题的警告。但是,OP明确排除了静态代码分析器。
签出Abraxas代码检查
http://www.abxsoft.com/codchk_user.html
-
除了文档外,它不是免费的:abxsoft.com/codchk.htm另外,它似乎已经过时了abxsoft.com/pricing.htm
我目前正在一个项目上,另一个项目正在编写这种工具。我查看了其他静态代码分析工具,并决定可以做得更好。
不幸的是,在没有相当熟悉代码的情况下,该项目尚未准备就绪可以使用(请阅读:充满麻烦的越野车)。不过,我们的步伐相当快,希望在接下来的8周内发布Beta版。
该项目是开源的-您可以访问项目页面,如果您想参与其中,我们希望获得更多的外部意见。
我不会为您带来任何细节-您可以为此访问项目页面,但是我会说一件事:大多数静态代码分析工具都旨在检查您的代码是否有错误,而不是非常关注检查编码准则。我们采用了一种更灵活的方法,该方法允许我们编写插件来检查"内部规则"以及可能的错误。
如果您需要更多信息,请随时与我联系。
干杯,