【问题标题】:A free tool to check C/C++ source code against a set of coding standards? [closed]根据一组编码标准检查 C/C++ 源代码的免费工具? [关闭]
【发布时间】:2010-09-10 17:33:54
【问题描述】:

看起来很容易找到这样一个用于 Java 的工具(CheckstyleJCSC),但我似乎找不到用于 C/C++ 的工具。我不是在寻找类似 lint 的静态代码分析器,我只想检查变量命名、大小写、间距、标识、括号放置等编码标准。

【问题讨论】:

标签: c++ c coding-style


【解决方案1】:

我知道的唯一工具是Vera。不过,还没有使用它,所以无法评论它的可行性。 Demo 看起来很有希望。

【讨论】:

  • 我已经测试过了,很简单。但它有效!
  • 我试过但很失望。它对 C++ 代码进行了标记,但“标识符”只有一个标记类型,因此它不区分类名、成员变量和局部变量。因此,我找不到对不同类型的标识符强制执行不同命名约定的方法。
  • Vera 没有一套非常全面的规则——但它们是可扩展的(在 TCL 中)
  • “可扩展”仅适用于非常简单的任务。由于 Vera 对 C++ 的理解很浅,任何“深度样式检查”(考虑一个可能的 [我不是建议好的] 规则:对于每个分配,在同一个函数中都有相应的释放)必须对适当的 C++ 知识进行编码,这真的真的很难,这意味着它不会发生。
  • Vera 的固定链接:bitbucket.org/verateam/vera
【解决方案2】:

【讨论】:

  • +1。这非常好——尽管它确实有一个非常严格的风格。使用 vera++ 等自己的规则进行扩展并不容易。
  • 如果您使用的是 Google 的 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 下载容易
【解决方案3】:

sourceforge.net 上检查universalindentgui

它有许多 C 风格检查器,您可以自定义检查器。

【讨论】:

  • UniversalIndentGUI 具有实时预览功能,可以导出配置和导出脚本。它非常适合尝试不同的“缩进器”,例如 GNU Indent、Artistic Style 和 Uncrustify。
【解决方案4】:

检查 Metrix++ http://metrixplusplus.sourceforge.net/。它可能需要一些特定于您需求的扩展。

【讨论】:

    【解决方案5】:

    查看 Abraxas 代码检查 http://www.abxsoft.com/codchk_user.html

    【讨论】:

    【解决方案6】:

    试试nsiqcppstyle。它是一个基于 Python 的 C/C++ 编码风格检查器。很容易扩展以添加您自己的规则。

    【讨论】:

      【解决方案7】:

      有一个list。还有一个推定的C++ frontend on splint

      【讨论】:

      • -1 因为问题明确表示“不寻找静态代码分析器”。
      【解决方案8】:

      还有cppcheckHudson 通过同名插件也支持。

      【讨论】:

      • cppcheck 是一个静态分析工具,而不是问题所要寻找的。​​span>
      • 也许这种情况自 2010 年以来发生了变化:今天 Cppcheck 还包括针对文体问题的警告。但是,好吧,OP 明确排除了静态代码分析器。
      【解决方案9】:

      我相信这在一定程度上会有所帮助cxx checker。这个工具似乎也不错KWStyle它来自Kitware,开发Cmake的人。

      【讨论】:

      • cxxchecker 现在对我来说似乎已经死了。
      • cxx checker 是死链接。
      【解决方案10】:

      我目前正在与另一个项目一起编写这样一个工具。我查看了其他静态代码分析工具,并决定我可以做得更好。

      不幸的是,如果对代码没有相当深入的了解,该项目还不能投入使用(请阅读:它有很多问题)。不过,我们的进展相当迅速,希望能在接下来的 8 周内发布测试版。

      该项目是开源的 - you can visit the project page,如果您想参与其中,我们希望获得更多外部输入。

      我不会对细节感到厌烦-您可以visit the project page为此,但我要说一件事:大多数静态代码分析工具旨在检查您的代码是否有错误,而不是非常关心检查编码指导方针。我们采用了一种更灵活的方法,允许我们编写插件来检查“家规”以及可能的错误。

      如果您想了解更多信息,请随时与我联系。

      干杯,

      【讨论】:

      • 最后一次提交是在 2009 年 6 月。似乎不再开发了。
      【解决方案11】:

      不完全符合您的要求,但我发现大家都同意编码标准astyle 可以更容易地生成然后自动化该过程。

      【讨论】:

      • 你最好明确一点,ArtisticStyle 只关注格式,这当然不是坏事 :)
      【解决方案12】:

      我在工作中使用了一个工具LDRA tool suite

      它用于测试 c/c++ 代码,但它也可以检查编码标准,例如 MISRA 等。

      【讨论】:

      • 为什么要修改这个?即使 LDRA 也是一个静态分析器——问题不是在寻找它——我相信它也能够检查代码是否违反了编码标准。
      • LDRA 的成本大约与普通汽车一样高...不是我认为的免费。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      相关资源
      最近更新 更多