我用pclint集成source insight,把Linux下include目录下的头文件都拷到Windows目录下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用pclint集成source insight,把Linux下include目录下的头文件都拷到Windows目录下相关的知识,希望对你有一定的参考价值。
且在std.lnt里面已经包含了头文件的路径,为什么在source insight对单个文件进行检测时显示好多错误,基本上全是Linux头文件里面的错误,是怎么回事?或者可以设置只检查自己的代码的话怎么设置?
可以在pclint的运行目录下的std.lnt中增加一句-wlib(0),可以屏蔽系统头文件。 参考技术A 同问!同问!同问!同问!嵌入式软件开发杂谈:静态分析工具Pclint与source insight的整合
文章目录
1 安装
1.1 安装
点击安装包中的pclint9setup.exe后, 直接进行安装
注意:安装路径不要有中文和空格
1.2 配置
点击安装路径中的CONFIG.exe,
选择如下:
2 集成到SI中
a)打开Source Insight软件 。
b)从Tools菜单中选择“Custom Commands”命令项。点击Add…。
c)在Name栏中输入“Pc_Lint”这个名字可以随便起。
在Run栏中输入“C:\\lint\\lint-nt.exe C:\\lint\\dv.lnt %f”其中C:\\Lint是你PC-LINT的安装目录。 或者输入以下指令
C:\\lint\\lint-nt -u -iC:\\lint std env-si %f
d)在Output栏中选择“Iconic Window”、“Capture Output”。
e)在Control栏中选择“Save Files First”、“Wait Until Done”。
f)在Source Links in Output栏中选择“Parse Links in Output”、“File,then Line”。
g)在Pattern栏中输入“([ ]*) ([0-9]+)”。
h)点Close键加入该命令。如下图:
i)点击Option—>Menu…键,选择“Custom Cmd: PC-LINT”,选择位置后点Insert键。
j)点击Keys…键,选择“Custom Cmd: PC-LINT”,点击Assign New Key…键,在弹出界面按F11键。
k)完成后点OK键,在Option菜单下出现“PC-LINT F11”菜单,点击执行。
3 生成头文件
touch empty.c
gcc -E -dM empty.c >lint_cmac.h
g++ -E -dM empty.c >lint_cppmac.h
将上述头文件拷贝到安装目录
4 修改配置
在si上运行之后,会提示没有找到对应的头文件之类,则需要将头文件路径写到std.lnt文件中
下面的全部标准头文件是从虚拟机中直接拷贝到PCLINT安装目录中。
-iD:\\lint\\include
-iD:\\lint\\include\\x86_64-linux-gnu
-iD:\\lint\\include\\linux
-iD:\\lint\\include\\c++
-iD:\\lint\\include\\c++\\5
-iD:\\lint\\include\\c++\\5\\tr1
-iD:\\lint\\include\\x86_64-linux-gnu\\c++\\5
另外,在编译过程中可能会提示找不到头文件,就需要我们将头文件路径定义达到std.int文件中
5 告警级别
6 常见错误消除
6.1 告警号40
D:\\lint\\include\\c++\\5\\cstdarg 54 Error 40: Undeclared identifier 'va_list'
_
size_t __pad5;
这个问题是标准头文件中的,因此不需要关注,将下面参数写到options.int中
-esym(40, va_list)
D:\\lint\\include\\libio.h 333 Error 40: Undeclared identifier 'size_t'
_
-esym(40, size_t)
_IO_va_list);
D:\\lint\\include\\libio.h 462 Error 40: Undeclared identifier '__gnuc_va_list'
-esym(40, __gnuc_va_list)
6.2 告警号 1057
D:\\lint\\include\\libio.h 305 Error 1057: Member '_IO_FILE::size_t' cannot be
used without an object
-esym(1057, _IO_FILE::size_t)
以上是关于我用pclint集成source insight,把Linux下include目录下的头文件都拷到Windows目录下的主要内容,如果未能解决你的问题,请参考以下文章
嵌入式软件开发杂谈:静态分析工具Pclint与source insight的整合
source insight注释显示不出来,出现乱码怎么办?我用的是英文的注释。