一个免费的工具,可以根据一组编码标准检查C / C ++源代码吗?[关闭]


151

在Java中找到这样一种工具(CheckstyleJCSC)看起来很容易,但是我似乎找不到C / C ++的工具。我不是在寻找像皮棉一样的静态代码分析器,我只想检查诸如变量命名,大写,间距,标识,括号位置等编码标准。


3
如果您在这里找不到想要的答案,请考虑以下问题:stackoverflow.com/q/10819398/120163
伊拉克·巴克斯特2012年

Answers:


57

我知道的唯一工具是Vera。但是,由于尚未使用它,因此无法评论它的可行性。演示看起来很有希望。


我已经测试过了,这很简单。但这有效!
贾德·迪亚斯

7
我尝试过,但感到失望。它使用标记化的C ++代码,但是对于“标识符”只有一个标记类型,因此它不会区分类名,成员变量和局部变量。因此,我找不到办法对不同类型的标识符强制使用不同的命名约定。
约翰W

Vera没有非常全面的规则-但它们是可扩展的(在TCL中)
fmuecke 2011年

2
“可扩展”仅适用于非常简单的任务。由于Vera对C ++的理解很浅,因此任何“深度样式检查”(考虑一个可能的[我不是建议好的]规则:对于每个分配,在同一函数中都有一个对应的解除分配)都必须对适当的C ++知识进行编码,这真的很难,这意味着它不会发生。
艾拉·巴克斯特


49

4
+1。很好-尽管它确实有非常严格的样式。用自己的规则(例如vera ++)扩展起来并不容易。
fmuecke 2011年


3
我假设这就是现在所说的cpplint,可以在github.com/google/styleguide/tree/gh-pages/cpplint上找到,上面指向c ++ lint的链接已损坏。
Zitrax 2015年

仅供参考,要安装,可以使用“ pip install cpplint”。然后,您可以只使用“ cpplint file.cpp”或“ cpplint --recursive”。而不是“ ./cpplint.py”,这是更可取的IMO。比起至少通过github下载更容易
Colin D


8

我确信这可以在某种程度上帮助cxx checker。同样,该工具似乎还不错。KWStyle它来自开发Cmake的Kitware。


1
cxxchecker现在对我来说似乎已经死了。
stefanct

cxx检查器无效链接。

7

并非完全符合您的要求,但是我发现,只要所有人都同意astyle可以生成然后自动执行该过程的编码标准,就比较容易。


1
您最好清楚地表明ArtisticStyle仅专注于格式,这当然不是一件坏事:)
Wolf



2

我在工作中使用了LDRA工具套件

它用于测试c / c ++代码,但也可以对照MISRA等编码标准进行检查。


1
为什么要对此进行修改?即使LDRA也是静态分析器-这个问题不是我们想要的-我相信它也能够检查代码是否违反编码标准。
Vitor Py 2010年

4
LDRA的费用大约是普通汽车的费用……不是我的免费想法。
隆丁


1

cppcheck它也支持哈德森通过相同名称的插件。


4
cppcheck是一个静态分析工具,不是要查找的问题。
Vitor Py 2010年

自2010年以来,情况可能有所改变:今天,Cppcheck还包含针对样式问题的警告。但是,好吧,OP明确排除了静态代码分析器。



-1

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

不幸的是,在没有相当熟悉代码的情况下,该项目尚未准备就绪,无法使用(请阅读:遍地都是越野车)。不过,我们的步伐相当快,希望在接下来的8周内发布Beta版。

该项目是开源的- 您可以访问项目页面,如果您想参与其中,我们希望获得更多的外部投入。

我不会为您带来任何细节-您可以为此访问项目页面,但是我会说一件事:大多数静态代码分析工具都旨在检查您的代码是否有错误,而不是非常关注检查编码准则。我们采用了一种更灵活的方法,该方法允许我们编写插件来检查“内部规则”以及可能的错误。

如果您需要更多信息,请随时与我联系。

干杯,


4
上一次提交是在2009年6月。它似乎不再开发。
同名的
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.