集成VS2013
安装Pclint
- 从http://download.csdn.net/download/xiake001/10027881下载破解版的pclint9i版;
- 点击pclint9setuo.exe将pclint安装到e:\lint下(也可以是其它位置);
- 将patch下的内容拷贝到e:\lint下,32位系统执行patch.bat,64位系统执行patch64.bat;
- 执行完lint中的bat后可将拷贝过来的文件删除掉。
升级
http://www.gimpel.com/html/ptch90.htm
配置单个文件检查项
1.在e:\lint下新建一个check文件夹;
2.在e:\lint\check下新建一个名为std.lnt的文件,并输入以下内容:
-i"E:\lint\lnt"
-i"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include"
E:\lint\lnt\lib-w32.lnt
E:\lint\lnt\co-msc90.lnt
E:\lint\lnt\env-vc9.lnt
3.在e:\lint\check下新建一个名为option.lnt的文件,并输入以下内容:
-wlib(0)
-w2 // only print error and warning
-e714 // function not use
-e715
-e522
-e534
-e830
-e628 //屏蔽type_traits文件错误
4.在e:\lint\check下新建一个名为include.lnt的文件,并输入以下内容:
-i"E:/lint"
-i"E:/lint/lnt"
-i"c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include"
-i"c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/atlmfc/include"
-i"c:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include"
5.在e:\lint\check下新建一个名为file_check.bat的文件,并输入以下内容:
E:\lint\lint-nt.exe -i"E:\lint\check" include.lnt std.lnt option.lnt %1 %2 %3 %4 %5 %6 %7 %8 %9
6.配置到vs工具
打开VS2013,依次点击工具–>外部工具,在弹出的对话框中点击添加按钮,在各输入框中输入以下内容:
标题: Pclint_Check_File
命令: E:\lint\check\file_check.bat
参数: “$(ItemDir)$(ItemFileName)$(ItemExt)”
初始目录: $(ItemDir)
在使用输出窗口前选勾,然后点击确认,完成。
之后,工具下拉菜单里会出现一栏名为Pclint_Check_File的菜单,点击此栏即可对当前文件进行pclint检查。
配置整个工程检查项
1.在C:\lint\check下新建一个名为proj_check.bat的文件,并输入以下内容:
echo >.\_file.lnt
e:\lint\lint-nt.exe +linebuf %1 > .\_file.lnt
e:\lint\lint-nt.exe -ie:\lint\check include.lnt std.lnt option.lnt .\_file.lnt
del /f /q .\_file.lnt
2.配置到vs工具
打开VS2013,依次点击工具–>外部工具,在弹出的对话框中点击添加按钮,在各输入框中输入以下内容:
标题: Pclint_Check_Proj
命令: E:\lint\check\proj_check.bat
参数: $(ProjectDir)$(ProjectFileName)
初始目录: $(ProjectDir)
在使用输出窗口前选勾,然后点击确认,完成。
之后,工具下拉菜单里会出现一栏名为Pclint_Check_Proj的菜单,点击此栏即可对整个工程进行pclint检查。
测试结果
结论: 能够准备的将变量b,检查出来.
遇到问题,可参考【常见问题】章节。
屏蔽告警
告警类别
误说明 | C | C++ | 告警级别 |
---|---|---|---|
语法错误 | 1-199 | 1001-1199 | 1 |
内部错误 | 200-299 | - | 0 |
致命错误 | 300-399 | - | 0 |
告警 | 400-699 | 1400-1699 | 2 |
消息 | 700-800 | 1700-1899 | 3 |
可选信息 | 900-999 | 1900-1999 | 4 |
PC-Lint/FelexLint提供了和许多编译器类似的告警级别设置选项-wLevel,它的告警级别分为以下几个级别,缺省告警级别为3级:
-w0 不产生信息(除了遇到致命的错误)
-w1 只生成错误信息 – 没有告警信息和其它提示信息
-w2 只有错误和告警信息
-w3 生成错误、告警和其它提示信息(这是默认设置)
-w4 生成所有信息
检查库文件
PC-Lint/FelexLint还提供了用于处理函数库的头文件的告警级别设置选项-wlib(Level),这个选项不会影响处理C/C++源代码模块的告警级别。它有和-wLevel相同的告警级别,缺省告警级别为3级:
-wlib(0) 不生成任何库信息
-wlib(1) 只生成错误信息(当处理库的源代码时)
-wlib(2) 生成错误和告警信息
-wlib(3) 生成错误、告警和其它信息(这是默认设置)
-wlib(4) 产生所有信息
错误信息禁止选项说明
命令格式 | 说明 | 代码中的举例 |
---|---|---|
-e# | 隐藏某类错误 | /*lint -e725 */ |
-e(#) | 隐藏下一表达式中的某类错误 | /*lint –e(534) */ printf(“it’s all”); |
!e# | 隐藏本行中的错误 | /*lint !e534*/ printf(“it’s all”); |
-esym(#, Symbol) | 隐藏有关某符号的错误 | /*lint –esym(534, printf)*/ printf(“it’s all”); |
-elib(#) | 隐藏头文件中的某类错误 | /*lint –elib(129) */ #include “r01.h” |
-efunc(#, ) | 隐藏某个函数中的特定错误 | /*lint –efunc(534, mchRelAll)*/ unsigned int mchRelAll(mchHoData *pHoData) { printf(“it’s all”); } |
常见问题
Error 322: Unable to open include file ‘typeinfo’
A:把co_msc90.lnt(18)行“#include ”注掉。
error 322: (Error – Unable to open include file ‘SDKDDKVer.h’)
解决方案:
在PC-Lint 的安装目录下,编辑std.lnt 文件,在路径后面加上SDKDDKVer.h 的路径,具体内容为:
-i”C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include”
参考
重要:pclint在VS2013中的配置
1. C++ error 类别信息
2. 代码静态检查工具PC-Lint运用实践