使用PC-lint

PC-lint的使用网络上有很多,下一篇将会转载一下。这里主要记录一下在使用的过程中所遇到的问题。

1.错误如下

-- Module:   d:/Projects/magellan/main/code/magellan/MgAIAction.cpp
      (C++)
      #include "co-msc80.h" /* generated from -header(co-msc80.h) */
      d:/Projects/magellan/main/code/magellan/MgAIAction.cpp(0): error 322:
      (Error -- Unable to open include file 'co-msc80.h')
出现这个错误时,我在网上找了很多也没找到一个合适的解决方法,只有一个与上面问题相同的代码标识。解决如下:
在PC LINT的文件夹中找到co-msc80.lnt,打开
转到最后一行“-header(co-msc80.h) // implicitly includes <typeinfo>. (Needed because MSVC 8 implicitly declares class type_info.)”。
将其中的co-msc80.h改为绝对地址:-header(C:/pc-lint/co-msc80.h) ,这样就可以了。

2.在VS2005中增加多文件的PC LINT检查,设置如下:
标题:pclint_project
命令:C:/unix/usr/local/wbin/find.exe
参数:$(ProjectDir) -name *.c -o -name *.cpp | C:/unix/usr/local/wbin/xargs C:/pclint/lint-nt -i"c:/unix/usr/local" -u c:/pc-lint/stdvc8.lnt c:/pc-lint/env-vc8.lnt

运行后出现错误:
C:/unix/usr/local/wbin/find.exe : paths must precede expression
Usage: C:/unix/usr/local/wbin/find.exe [path...] [expression]

原因是$(ProjectDir)解析后为C:/abc/de//,有问题,find接收的文件夹路径为C:/abc:/de

当前我还没找到解决办法,除了在控制台上直接运行!!

3.其实windows下使用pc-lint最好还是集成在source insight上。这里注意一点:
      一般的人在设置好pc-lint后,运行发现有这样的错误:error 322: (Error -- Unable to open include file 'stdafx.h')。这是因为在std.lnt中设置的包好选项中没有办好这个头文件的文件夹路径。
      这里建议,如碰到该情况,请重新建立一个lnt文件,将该工程所引用的头文件路径都包含里面。例如我建立了一个文件叫header_myproject.lnt,里面只有这句话-i"d:/SVN/闸机1.1/trunk/XdrEDCode;d:/SVN/闸机1.1/trunk/XdrEDCode/header" 注意-i一定要与"紧紧挨近一起。然后将文件header_myproject.lnt路径添加到std.lnt中即可。

4.使用PC-Lint时可能会遇到很多库的头文件的错误,特别是在VS中。这时可以通过设置PC-LINT.exe的参数屏蔽库文件的错误。一般为PC-LINT.exe -wlib(x)
-wlib(0) 不生成任何库信息
-wlib(1) 只生成错误信息(当处理库的源代码时)
-wlib(2) 生成错误和告警信息
-wlib(3) 生成错误、告警和其它信息(这是默认设置)
-wlib(4) 产生所有信息

另外,如果你测试时不想看一下info类的信息,可以在命令中增加-wx来屏蔽不需要显示的信息:
-w0 不产生信息(除了遇到致命的错误)
-w1 只生成错误信息 -- 没有告警信息和其它提示信息
-w2 只有错误和告警信息
-w3 生成错误、告警和其它提示信息(这是默认设置)
-w4 生成所有信息
一般情况下我先使用-w1再用-w2,最后用-w3

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值