Code::Blocks使用pc-lint
2011-09-22 21:42
417 查看
先说下pc-lint,虽说在它的官方网站上已经有9.0版本,但是并不提供任何的试用版本。我在网上找了下,目前能免费下载的最新版本大概是8.0w了。至于Code::Blocks就简单多了,直接到官方网下载最新版本即可。
pc-lint的配置也是个麻烦事,好在网上介绍的文章很多,让pc-lint转起来应该不难。
我的做法是解压pc-lint包到任意目录,然后从lnt目录中copy一个配置文件模板,即std.lnt文件到pc-lint根目录下。修改这个文件,为该文件出现的文件引用指定完整路径,在我的机器上是这个样子的:
d:\pclint\lnt\au-sm.lnt
d:\pclint\lnt\au-ds.lnt
d:\pclint\lnt\au-misra.lnt
d:\pclint\lnt\co-gnu3.lnt
接下来还要指定头文件的目录,找到Code::Blocks目录下的include子目录的位置,添加上去即可,我使用的是:
-i"c:\program files";"C:\Program Files\CodeBlocks\MinGW\include"
最前面-i的用法和makefile中的是一样的。
针对个人的使用习惯,可能还有一些特殊配置,建议都放到options.lnt文件中,所以在std.lnt中还要加上:
d:\pclint\options.lnt -si4 -sp4
我使用的options.lnt文件是这样子的:
-wlib(0)
-e829
-e970
-e726
-e956
-esym(960, 69)
完成上面的配置后,就可以使用pc-lint对代码进行检查了。先在命令行中试验下:
lint-nt.exe -u d:\pclint\std.lnt test.c
果然能看到很多信息出现,包括警告和错误。比较奇怪的是居然提示找不到stddef.h,这怎么可能。查看stdio.h,它明明就是直接include stddef.h的,如果真找不到,就不可能通过Code::Blocks的编译了。
但是,我在C:\Program Files\CodeBlocks\MinGW\include搜索,竟然真的找不到此文件。真是奇怪!
先不管这么多,自己添加一个空的stddef.h文件好了,这样总算能骗过pc-lint了:-)。
不过pc-lint又开始抱怨NULL未定义。我决定使用Code::Blocks编译试试,更奇怪的是,竟然没法编译通过,出现了一大堆错误。但是我把stddef.h删掉就可以了。
看来Code::Blocks还是有这个文件的,就是不知藏哪了。这个简单,直接在Code::Blocks目录下搜索,终于让我在C:\Program Files\CodeBlocks\MinGW\lib\gcc\mingw32\3.4.5\include目录把它找出来了。接下的问题就简单啦,把这个添加到std.lnt的-i行后即可:
-i"c:\program files";
"C:\Program Files\CodeBlocks\MinGW\include";
"C:\Program Files\CodeBlocks\MinGW\lib\gcc\mingw32\3.4.5\include"
这样使用起来就一切正常啦,接下来,就是--去除那些警告吧。
pc-lint的配置也是个麻烦事,好在网上介绍的文章很多,让pc-lint转起来应该不难。
我的做法是解压pc-lint包到任意目录,然后从lnt目录中copy一个配置文件模板,即std.lnt文件到pc-lint根目录下。修改这个文件,为该文件出现的文件引用指定完整路径,在我的机器上是这个样子的:
d:\pclint\lnt\au-sm.lnt
d:\pclint\lnt\au-ds.lnt
d:\pclint\lnt\au-misra.lnt
d:\pclint\lnt\co-gnu3.lnt
接下来还要指定头文件的目录,找到Code::Blocks目录下的include子目录的位置,添加上去即可,我使用的是:
-i"c:\program files";"C:\Program Files\CodeBlocks\MinGW\include"
最前面-i的用法和makefile中的是一样的。
针对个人的使用习惯,可能还有一些特殊配置,建议都放到options.lnt文件中,所以在std.lnt中还要加上:
d:\pclint\options.lnt -si4 -sp4
我使用的options.lnt文件是这样子的:
-wlib(0)
-e829
-e970
-e726
-e956
-esym(960, 69)
完成上面的配置后,就可以使用pc-lint对代码进行检查了。先在命令行中试验下:
lint-nt.exe -u d:\pclint\std.lnt test.c
果然能看到很多信息出现,包括警告和错误。比较奇怪的是居然提示找不到stddef.h,这怎么可能。查看stdio.h,它明明就是直接include stddef.h的,如果真找不到,就不可能通过Code::Blocks的编译了。
但是,我在C:\Program Files\CodeBlocks\MinGW\include搜索,竟然真的找不到此文件。真是奇怪!
先不管这么多,自己添加一个空的stddef.h文件好了,这样总算能骗过pc-lint了:-)。
不过pc-lint又开始抱怨NULL未定义。我决定使用Code::Blocks编译试试,更奇怪的是,竟然没法编译通过,出现了一大堆错误。但是我把stddef.h删掉就可以了。
看来Code::Blocks还是有这个文件的,就是不知藏哪了。这个简单,直接在Code::Blocks目录下搜索,终于让我在C:\Program Files\CodeBlocks\MinGW\lib\gcc\mingw32\3.4.5\include目录把它找出来了。接下的问题就简单啦,把这个添加到std.lnt的-i行后即可:
-i"c:\program files";
"C:\Program Files\CodeBlocks\MinGW\include";
"C:\Program Files\CodeBlocks\MinGW\lib\gcc\mingw32\3.4.5\include"
这样使用起来就一切正常啦,接下来,就是--去除那些警告吧。
相关文章推荐
- Ubuntu下,Java中利用JNI调用codeblocks c++生成的动态库的使用步骤
- PC-Lint的使用方法(一)
- Code::Blocks使用释疑
- codeblocks使用小技巧
- 使用PC-lint
- 在Code:Blocks使用MinGW编译wxWidgets库
- mingw32编译boost-1.58.0 && Code::Blocks使用boost
- 在Code::Blocks中使用C++11标准
- CodeBlocks使用技巧
- 【转】CodeBlocks中文版使用手册
- 在Code::Blocks上使用wxWidgets-2.8.0 (二)——开发篇
- codeblocks 使用汇总
- Ubuntu下,Java中利用JNI调用codeblocks c++生成的动态库的使用步骤
- CODE::BLOCKS 使用手册 及 WIKI
- ffmpeg(一)—— 环境搭建,使用code::blocks
- Windows环境下创建并使用动态链接库(CodeBlocks版)
- CodeBlocks使用小技巧
- code::blocks基本使用方法
- PC-Lint的使用方法(一)
- Code::Blocks 10.05的安装汉化及使用