2

我的公司有 PC-lint 可执行文件 lint-nt.exe。

我正在尝试使用它来将 PC-lint 与 MS Visual Studio 2008 集成以分析.c/ .cpp 源。但我没有成功让它发挥作用。

我读:

http://www.gimpel.com/html/pub80/env-vc9.lnt

以及一两个其他网站上的类似此类信息,但没有成功。

我按照指示的步骤在 Visual C++ 8 中添加了一个外部工具,但是当我单击新添加的工具时,pc-lint 窗口会立即打开并立即关闭,我怀疑它是否运行了任何分析。所以它不适合我。

然后我尝试在 Windows 命令提示符下运行 lint-nt.exe

lint-nt.exe +fce +fcp +cpp(cpp,cxx,cc) -i"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" +libdir +libh myfile.cpp

它确实执行了分析,但它分析了 Visual C++ INCLUDE 文件夹(limits.h sal.h iostream 等)中的许多头文件,因为我的源文件有#include <iostream>等等。

编辑:我看到 pc-lint 有 options+/-libdir+/-libh这样的选项,这可能会有所帮助,但我只是无法正确使用它们来避免对编译器头文件的分析。

两个问题:

  1. 如何防止 pc-lint 分析编译器头文件而只分析我的源代码文件?
  2. 如何将 pc-lint 集成到我正在使用的 Visual C++ 2008 Express 版本中?
4

2 回答 2

1

如果您的公司有 Lint 可执行文件,如果没有纸质版,它也有 PDF 格式的 PC-Lint 手册。它与可执行文件一起提供在 CD-ROM 上。该手册是您的朋友,您可以了解如何使用所有可用的选项。

对于你的问题:

  1. 要快速开始,请从命令行中删除、和+fce选项。我想您只是错过了对 MS 库产生的许多警告保持沉默的选项。不要使用:您将静音库头文件的所有选项,但源自这些库头文件的不正确配置可能会在您的代码中产生大量警告,您无法找到隐藏在这些编译器头文件中的罪魁祸首。+fcp+libdir+libh-wlib(1)-wlib(0)
  2. user34341 的链接并不是一个糟糕的开始,尽管我在精确跟踪时遇到了一些问题。Gimpel 网站上的 env-vc9.lnt 假定您已经使用他们的安装程序安装了 PC-lint。在你问题的字里行间阅读,我猜你没有。创建此类安装的详细信息包括生成 PC-lint 选项文件 std.lnt 让我们对这个答案太过分了,但我写了一个 PDF 文档“如何使用 PC Lint ”详细解释了这一切。如果你结合来自 user34341 的链接、来自 Gimpel 的选项文件和我的文档,你应该没问题。

此外: env-vc9.lnt 仅包含使用 VC9 环境(又名 Visual Studio)的选项;要支持 C/C++ 编译器,您需要适当的编译选项文件http://www.gimpel.com/html/pub80/co-msc90.lnt及其相关的(仅 Lint)头文件http://www .gimpel.com/html/pub80/co-msc90.h

因此,在您开始在 VS2008 中集成之前,请下载它们并尝试以下命令行:

lint-nt.exe +cpp(cpp,cxx,cc) co-msc90.lnt myfile.cpp

看看结果是否比以前更好。该-i选项没问题,但如果您为 Visual Studio 正确设置了环境变量(例如 %INCLUDE%),则没有必要。

还有一个提示:假设您还没有这样做,请查看您可用的 PC-lint 版本,并确保更新到最新的补丁级别:7.50ad8.00x9.00i(当前版本);版本号下的链接会将您带到相应的网站页面。它会为你省去很多麻烦。我知道获得最新版本并不总是一种选择,即使非常可取。

于 2012-12-12T05:56:48.350 回答
0

PC-Lint 的安装及其在 Visual Studio 2005 中的使用。见中间文章。

于 2012-12-10T18:46:26.907 回答