C/C++学习ing。还是想要测试。

发布新日志

  • PC-lint与VS2005进行集成

    2009-01-13 23:49:27

    现以PC-lint与VS2005进行集成来说明:

    将PC-lint释放到某一目录下,如:D:\pclint.将新建一std.lnt文件在主目录中,并将添加上以下的内容


    au-sm.lnt
    co-msc80.lnt
    lib-mfc.lnt
    lib-stl.lnt
    lib-w32.lnt
    lib-wnt.lnt
    lib-atl.lnt
    options.lnt -si4 -sp4

    -i "C:\Program Files\Microsoft Visual Studio 8\VC\include"
    -i "C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include"
    -i "C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include"
    -i "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include"

    注意:-i后面为相应的vc头文件目录路径,而一系列xxx.lnt是语法配置规则,决定了按什么规则进行检查,以后可以根据 需要进行增减. 写在配置文件中相应的的xxx.lnt从lnt子目录中,拷贝到主目录中.(这一步很重要) 在vs2005中的工具->外部工具中,点击"添加",新建一个外部工具.标题可以任意,可取(pc_lint);命令为:D:\Program Files\pclint\LINT-NT.EXE;参数为:-i"D:\Program Files\pclint" std.lnt "$(ItemFileName)$(ItemExt)";初始目录为:$(ItemDir),并将下面的"使用输出窗口"勾选上. 接下来,就可以写一段程序,在工具菜单中选择pc_lint 来进行检查了.如果你编写的程序有不符合定义的规范,则会在输出窗口中出现相关的信息.

  • 如何屏蔽pclint的头文件检查报警------------疑惑??——结果待续

    2009-01-13 23:11:57

    第一种说法:
    lint.bat如下:
    @echo off
    "C:\Lint\Lint-nt" -i"C:\Lint;E:\TestProjects\CommonLib" std.lnt env-vc7.lnt -os(C:\Lint\_LINT.TMP) %1 %2 %3 %4 %5 %6 %7 %8 %9
    type C:\Lint\_LINT.TMP | more
    找头文件,你可以在我写的那个.bat文件中看到这么一行-i"C:\Lint;E:\TestProjects\CommonLib"
    这就是指明包含路径的.

    第二种说法:
    找不到头文件
    比如说头文件在 C:\test\header\inc\test.h
    源文件中是 #include <inc\test.h>
    那么在你的std.lnt里面加上一行
    -IC:\test\header

    “不能找到头文件stdio.h

    当然PCLINT不可能也不应该知道到哪里去找stdio.hstdio.h所在的路径需要我们告诉它。

    如何告诉呢?

    通常的做法是在xxx.lnt文件中指定,然后指定使用这个xxx.lnt文件。

    最简单的是使用 c:\pclint\std.lnt 这个文件。

     

    2.2. std.lnt的配置:

    2.2.1.    std.lnt的默认内容

    C:\PCLint\std.lnt默认内容为:

    //NOTES: DON'T delete the comment string

    //author+++

    //au-sm.lnt au-ds.lnt au-misra.lnt

    //author---

     

    //compiler+++

    co-gnu3.lnt

    //compiler---

     

    //library+++

    lib-stl.lnt lib-w32.lnt lib-wnt.lnt

    //library---

     

    //alignment+++

    -si4 -sp4

    //alignment---

     

    3gTdrnc.lnt

     

    2.2.2.    修改std.lnt

    运行C:\PCLint\CONFIG.EXE(或者直接手工修改std.lnt

    最后生成的std.lnt内容为:

    //  Microsoft C and Visual C++ 6.x, -si4 -sp4,

    //  Standard lint options

     

     

    co-msc60.lnt

     

    // options.lnt  -si4 -sp4

    -i"E:\Program Files\Microsoft Visual Studio\VC98\Include"

    -i"E:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE"

    -i"E:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE"

     

    暂时将options.lnt 这行注释掉。


    待定..............
  • 关于std.int和option.int文件的说明

    2009-01-13 22:50:21

    一、lint.bat和std.lnt文件.
    lint.bat如下:
    @echo off
    "C:\Lint\Lint-nt" -i"C:\Lint;E:\TestProjects\CommonLib" std.lnt env-vc7.lnt -os(C:\Lint\_LINT.TMP) %1 %2 %3 %4 %5 %6 %7 %8 %9
    type C:\Lint\_LINT.TMP | more

    std.lnt如下:
    //C++编程提出过重要建议的作者,选择某作者后,他提出的编程建议方面的选项将被打开
    D:\pclint\lnt\au-sm.lnt
    D:\pclint\lnt\au-ds.lnt
    D:\PC-Lint\co-msc60.lnt
    D:\PC-Lint\lib-w32.lnt
    D:\Sources\PC-Lint\options.lnt -si4 -sp4
    -i"D:\Program Files;D:\Program Files\Microsoft Visual Studio\VC98\ATL\Include;D:\Program Files\Microsoft Visual Studio\VC98\Include;D:\Program Files\Microsoft Visual Studio\VC98\MFC\Include" //(这是我的VC6.0路径)

    -wlib(0)//最后的-wlib(0)是取消对编译器库文件的审查,这个是相当重要的一个参数。如果
    你只是想审查自己的代码的话,请加上这个参数。不然,就会对编译器的库函数也
    进行审查
    ......
    ......
    ......

    二、这个options.lnt是用户自定义的参数,你可以自己写也可以没有.至于它的内容你还是看看PCLint的帮助吧.PCLint有太多的参数了.我这里的内容是:
    -e720 // allow direct test of assignment
    -e502 -e713 -e737 -eau // don't report on signed/unsigned mismatches
    -e734 // allow sub-integer loss of information
    -e701 -e703 // shifting int left is OK
    -e718 // allow calls to undeclared C functions
    -e746 // allow calls w/o prototypes in C.


  • pclit的配置与使用

    2009-01-13 00:03:54

    终于把单文件编译和多文件(工程)编译时如何配置和使用pclint搞定了。真的被这个pclint搞的快崩溃了,试了无数种方法,终于可以编译测试啦,庆祝一个,明天就要好好整整这可恶的的工具啦
    一、单文件编译测试:
    1.将pclint.rar解压至c:\, 这样lint文件就位与c:\pclint(安装目录)下了。
     2.将c:\pclint\lnt 下的3个文件lib-w32.lnt,env-vc6.lnt,co-msc60.lnt拷贝至c:\pclint下, 再在安装目录下创建std.lnt和options.lnt两个文件,其中std.lnt的内容如下 D:\pclint\co-msc60.lnt D:\pclint\lib-w32.lnt D:\pclint\options.lnt -si4 -sp4 -i"D:\ProgramFiles\MicrosoftVisualStudio\Common\MSDev98\Bin;D:\ProgramFiles\MicrosoftVisualStudio\VC98\ATL\Include;D:\ProgramFiles\MicrosoftVisualStudio\VC98\Include;D:\ProgramFiles\MicrosoftVisualStudio\VC98\MFC\Include"   options.lnt 内容空    
    3.打开VC6,tools--->customize-->tools 新建一个名为pclint的项,在下面填入  
     command: D:\pclint\lint-nt.exe  
     arguments: -u D:\pclint\std.lnt   "$(FilePath)"  
     Use Output Window 打上勾   close 完成。 VC窗口tools菜单下应该多了一个pclint选项 
    二、 工程(多文件)编译测试
    1.用利用PCLINT对整个工程进行编译需要用到unix中的find等命令来查找当前目录下的C和C++文件。下载 UnxUtils.zip(http://www.weihenstephan.de/~syring/win32/UnxUtils.zip)。将这个压缩文件解压到工作目录下,可以看到在D:\pclint\UnxUtils\usr\local\wbin目录下有很多命令。
    2.在vc6.0的工具->定制窗口中添加一个"PCLint_Project"项,命令和变量如下: command: D:\pclint\UnxUtils\usr\local\wbin\find.exe arguments: "$(FileDir)" -name *.c  -o -name *.cpp | D:\pclint\UnxUtils\usr\local\wbin\xargs D:\pclint\lint-nt -i"D:\pclint\UnxUtils\usr\local" -u D:\pclint\std.lnt D:\pclint\env-vc6.lnt
     在该窗口底部把“使用输出窗口”这一单选框选上,点击“关闭”退出定制窗口。这样,在VC的工具菜单下多了一个"PCLint_Project"工具,对VC工程进行编译的时候直接用这个工具即可。
    注:在D:\pclint中创建一个文件夹用以存放各个工程的文件,好了,现在动手测试一下你自己的工程吧。
Open Toolbar