14

我正在寻找类似于 JavaScript linting 工具 JSHint 或 JSLint for C 的东西。我的文本编辑器(Sublime Text 2)有一个 JSHint 插件,可以实时反馈我的 JavaScript 代码。

获得有关我的 C 代码质量的反馈的最佳方式是什么?有什么工具可以给我实时的 linting?

4

6 回答 6

5

我编造了一种方法,将一些为 SublimeText 2 编写的用户制作的 linter 放入混合中,以使 linting 与 SublimeLinter 和 ANSI C 一起工作。另请注意,这是一种让它工作的稍微“hacky”的方式。

  • 必须安装 clang(对于 OS X,您可以使用Apple 的命令行工具安装 clang/LLVM 编译器,它只需要一个免费的开发人员帐户),您还必须在 Sublime Text 2 中安装SublimeLinter

  • 导航到该用户的SublimeLinter 分支并继续从模块文件夹下载“c.py”模块

  • 将此模块复制到位于下的 SublimeLinter 的工作模块目录中**your SublimeText 2 data directory**\Packages\SublimeLinter\sublimelinter\modules\(有关数据目录的更多信息,请参阅此内容)

  • 重启 Sublime Text 2 †</sup>



†确保窗口右下角的当前语言设置为“C”,而不是“C++”、“Python”等。

于 2012-08-03T04:23:01.120 回答
3

看看Clang 静态分析器和 Gimpel 的PC-lint 和 FlexeLint

于 2012-08-01T00:57:19.817 回答
2

另外,请看一下cppcheck

于 2012-08-01T01:00:35.313 回答
0

通过带有完整警告的编译器传递它是一个非常好的基本 lint。它会捕获诸如拼写错误的变量之类的东西。关闭优化的铿锵声足够快,可以用作实时插件的基础,但我不知道这种崇高文本。

于 2012-07-31T23:59:49.843 回答
0

你有足够的代表,我觉得这可能是一个太明显的建议,但听起来你基本上会从 IDE 中受益?例如,日食。我在 Eclipse/Java 中开发,它在错误/警告方面非常激进,当然比我见过的编译器要多。

于 2012-08-01T01:18:00.270 回答
0

由于提出并回答了这个问题,现在C/C++在 Sublime 中有一些 linting 选项,这些选项比公认的答案更加用户友好。所有这些都是 SublimeLinter 的插件。我建议使用Package Control作为 Sublime Text 的包管理器(插件作者也是如此)。

首先,如果您还没有Sublime Linter ,请安装它(它是一个非常流行的多语言 linting 框架)。正如作者所推荐的,它最容易通过包控制安装,但更多信息在 github 站点上。一旦安装了 Sublime Linter,就会有两到四个不同的附件包用于 lintingCC++code。

其中两个使用C/C++编译器本身进行检查;这些是SublimeLinter-gccSublimeLinter-clang。两者都可以通过 Package Control 安装,并为 SublimeLinter 提供到相关底层编译器的接口。gcc 包可以很容易地指定您想要使用的编译器可执行文件,以防您可能想要检查代码以进行交叉编译。

另外两个分别是cpplintcppcheck的接口。这两个在包控制上也可用,尽管名称似乎都将 lint C 和 C++ 代码。

Note that you probably only want one of these options enabled at a time, although the SublimeLinter setup allows you to have multiple options installed and only one enabled via the "linters": {...} option stanza.

于 2018-05-03T01:35:43.893 回答