【问题标题】:How to integrate PC-lint with Visual C++ 2008如何将 PC-lint 与 Visual C++ 2008 集成
【发布时间】:2012-12-10 17:07:40
【问题描述】:

我的公司有 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 有选项 +/-libdir+/-libh 和这样的选项,这可能会有所帮助,但我无法正确使用它们来避免对编译器头的分析。

两个问题:

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

【问题讨论】:

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


    【解决方案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 和我的文档结合起来,应该没问题。

    此外: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
    

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

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

    【讨论】:

    • 很好尝试 -wlib(1) co-msc90.lnt myfile.cpp 现在我收到错误:PC-lint for C/C++ (NT) Ver. 8.00p,版权 Gimpel Software 1985-2004 co-msc90.lnt 14 错误 72:错误选项 '+compiler(search_actively_including_stack)' co-msc90.lnt(55):错误 72:错误选项 '+fwm' co-msc90。 lnt(350):错误72:错误选项'+rw(*type_traits)'---模块:CTroposManager.cpp_CTroposManager.cpp():错误72:错误选项'+rw(*type_traits)'_#include co-msc90.h(18) : 错误 322: 无法打开包含文件 'typeinfo'
    • 好的,如果您使用的是 PC Lint 版本 8.00p (2004),我首先建议您从 2008 年开始将您的版本修补到 8.00x 版本(这很简单,四年前免费! ),并在我在帖子中指出的最新 8.00 补丁页面上使用 co-msc90.lnt。您收到的警告来自 8.00p(2004 年!)之后版本中引入的功能,8.00p 不支持。
    【解决方案2】:
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2019-08-04
    • 2019-05-15
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    相关资源
    最近更新 更多