如何将PC-lint与Visual C ++ 2008集成

时间:2012-12-10 17:07:41

标签: static-analysis lint visual-c++-2008 pc-lint

我的公司有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>等等。 / p>

编辑:我看到pc-lint有选项+/-libdir+/-libh和这些选项,这可能有所帮助,但我无法正确使用它们来避免分析编译器头。

两个问题:

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

2 个答案:

答案 0 :(得分:1)

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

问题:

  1. 要快速入门,请从命令行中删除+fce+fcp+libdir+libh选项。我想你只是错过了-wlib(1)选项,对MS库产生的许多警告保持沉默。不要使用-wlib(0):您将沉默库头的所有选项,但源于这些库头的错误配置可能会在您的代码中产生大量警告,您无法在这些编译器头中找到隐藏的罪魁祸首。
  2. user34341的链接并不是一个糟糕的开始,虽然我确实有一些问题。来自Gimpel网站的env-vc9.lnt假设您已经安装了PC-lint及其安装程序。在你的问题之间阅读,我想你没有。创建这样一个安装的细节,包括生成PC-lint选项文件std.lnt,对于这个答案来说太过分了,但是我写了一篇PDF文档“How to wield PC Lint”来解释这一切都是痛苦的细节。如果您将the link from user34341options file from Gimpel和我的文档合并,那么您应该没问题。
  3. 此外:env-vc9.lnt仅包含使用VC9环境的选项(a.k.a 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(当前版本);版本号下的链接将您带到相应的网站页面。它会为你省去很多麻烦。我知道获得最新版本并不总是一种选择,即使是非常优选。

答案 1 :(得分:0)