【问题标题】:How do I download and install lint?如何下载和安装 lint?
【发布时间】:2011-10-16 09:54:40
【问题描述】:

有谁知道如何为 Mac、Windows 和 Linux 获取 lint? sudo port install lint找不到。

【问题讨论】:

  • Lint 已经很老了,几乎所有用于警告的 lint 现在都包含在实际的编译器警告中。你可能想尝试一些现代的东西,比如Cppcheck(它也适用于 C 程序)。
  • 您可能需要启用优化以获得“几乎所有用于警告的 lint”。如果没有优化,编译器可能会跳过会发现它可以警告的问题的分析。
  • @GregHewgill,Cppcheck 是否仅在 Windows 上可用?如果是,有什么建议的 linux 替代品吗?
  • @Gokul_uf:当然不是,只需从 sourceforge 下载源代码压缩包或从 github 克隆项目即可。 Cppcheck 几乎可以在任何可以编译 C++ 代码的平台上运行。
  • @gokul_uf sudo apt-get install cppcheck

标签: c debugging lint static-code-analysis


【解决方案1】:

来自夹板常见问题:

Splint 支持大部分(但不是全部)对 ANSI C 的 C99 扩展。

这意味着夹板与 lint 不同。我有在这样的代码片段上运行夹板的个人经验:

for (int i; i < 100; i++)
    /* Run code */

因为直到 C99 才允许在 for 循环头中声明变量,就像在这个例子中一样,夹板会抱怨这一点。因此,我仍在为 Ubuntu 寻找替代夹板的好方法。

【讨论】:

  • 应该是for (int i=0; i &lt; 100; i++) /* Run code */
  • @arainchi 为了示例和避免混淆,我认为此处应省略定义。问题在于变量声明。
  • @arainchi 完成,代码应为:c { int i; for (i = 0; i &lt; 100; i++); }
【解决方案2】:

我只见过 BSD 的 lint。有 splint,不过,它是一个 GPL lint 重写,它在大多数 Linux 发行版上都可用。

【讨论】:

  • 在 Mavericks 上,splint 在编译/制作步骤中抱怨 osd.c:519:3: error: unknown type name '__pid_t'; did you mean 'pid_t'? __pid_t pid = getpid (); ^~~~~~~ pid_t /usr/include/sys/_types/_pid_t.h:30:31: note: 'pid_t' declared here typedef __darwin_pid_t pid_t; ^ 1 error generated.。将该行更改为 pid_t pid = getpid (); 以在 OS X Mavericks 上编译/制作。
猜你喜欢
  • 2016-05-27
  • 2017-03-28
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多