C代码的实时linting

时间:2012-07-06 16:43:41

标签: c lint

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

获得有关C代码质量的反馈的最佳方法是什么?有没有可以让我实时掉毛的工具?

6 个答案:

答案 0 :(得分:5)

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

  • 必须安装了clang(对于OS X,您可以使用Apple's command line tools来安装clang / LLVM编译器,这只需要一个免费的开发者帐户,您还必须在Sublime Text 2

  • 中安装SublimeLinter
  • 导航到SublimeLinter的this user's fork并继续从modules文件夹下载'c.py'模块

  • 将此模块复制到位于**your SublimeText 2 data directory**\Packages\SublimeLinter\sublimelinter\modules\下的SublimeLinter工作模块目录(see this,以获取有关数据目录的更多信息)

  • 重新启动Sublime Text 2

<小时/>
†确保窗口右下角的当前语言设置为“C”,而不是“C ++”,“Python”等,

答案 1 :(得分:3)

答案 2 :(得分:2)

另外,请查看cppcheck

答案 3 :(得分:0)

通过完整警告将其传递给编译器是一个非常好的基本lint。它会捕获诸如拼写变量之类的内容。 clang with optimizations off足够快,可以作为实时插件的基础,但我不知道这种用于崇高文本。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

首先,如果您还没有它,请安装Sublime Linter(这是一种非常流行的多种语言的linting框架)。如作者所建议的那样,它最容易通过包控制安装,但github网站上有更多信息。安装Sublime Linter后,现在有两到四个不同的附件包可用于linting CC++代码。

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

另外两个分别是cpplintcppcheck的接口。这两个也可以在Package Control上使用,尽管它们的名字似乎都是lint C和C ++代码。

请注意,您可能只希望一次启用其中一个选项,但SublimeLinter设置允许您安装多个选项,并且只有一个选项通过"linters": {...}选项节启用。