當前位置:編程學習大全網 - 編程語言 - PC-lint的使用方法

PC-lint的使用方法

PC-lint 軟件性價比高,易於學習,容易推廣和固化到軟件開發測試流程中去,所以在全世界得到了廣泛的應用。PC-lint 使用方法很簡單,可以用命令行方式進行,例如lint-nt –u std.lnt test1.c test2.c test3.c 也可以使用

MAKEFILE的方式。此外,它還可以集成到很多開發環境或常用的代碼編輯軟件中,比如集成到Source Insight/SLICKEDIT/MS VC6.0/KEIL C..等。PC-Lint 還支持Scott Meyes的名著(Effective C++/More Effective C++)中說描述的各種提高效率和防止錯誤的方法。

PC-lint 的安裝非常簡單,以PC-lint 8.0為例,運行安裝程序將其釋放到指定的安裝目錄即可,比如c:\pclint8。然後需要運行PC-lint 的配置工具config.exe生成選項和檢查配置文件,以剛才的安裝路徑為例,config.exe 應

該位於:C:\pclint8\config.exe。配置文件是代碼檢查的依據,PC-lint 自帶了壹個標準配置文件std.lnt,但是這個文件沒有目錄包含信息(頭文件目錄),通常對代碼檢查的時候都需要指定壹些特殊的包含目錄,所以要在標準配置的基礎上生成針對某個項目代碼檢查的定制配置。下面就以Microsoft Visual C++ 6的開發環境為例,介紹壹下定制配置的過程。

運行C:\pclint8\config.exe後出現壹個歡迎界面,提示版權信息,如圖4.1所示:

圖4.1 配置歡迎窗口

點擊“下壹步”按鈕出現pc-lint.exe命令行使用說明窗口(圖4.2所示):

圖4.2 pc-lint.exe命令行使用說明窗口

點擊“下壹步”按鈕繼續,接著是選擇創建或修改已有配置文件STD.LNT的選項:

圖4.3 選擇如何使用配置文件STD.LNT 因為我們是第壹次配置,所以選擇上面壹個選項“Create a new TD.LNT”,

這樣做不會修改已有配置文件STD.LNT的內容,而是創建壹個新的STD_x.LNT文件,文件名中的x是從“a”到“z”26個英文字符中的任意壹個,壹般是按順序排列,從“a”開始。STD_x.LNT文件的內容被初始化為STD.LNT內容的拷貝。如圖4.3所示,使用默認的PC-Lint 路徑,然後點擊“下壹步”按鈕選擇編譯器:

圖4.4 選擇編譯器

接下來是選擇編譯器,在下拉框中選擇自己使用的編譯器。這裏我們選擇“Microsoft Visual C++ 6.x (co-msc60.lnt)”。如果沒有自己使用的編譯器,可選擇通用編譯器“Generic Compilers”。這個選項會體現在co-xxx.lnt 文件中,並存放在前面我們選擇的配置路徑(C:\PCLint8)下,在後面配置選項我們所選擇的***.LNT均會被存放到這個路徑下。點擊“下壹步”按鈕選擇內存模式:

圖4.5 選擇內存模式

可以根據自己程序區和數據區的實際大小選擇壹個恰當的內存模型,內存模型的選項會體現在STD.LNT文件或新創建的STD_x.LNT 中。因為我們的開發環境是32位的Windows,所以選擇“32-bit Flat Model”,然後點擊“下壹步”按鈕選擇所要的支持庫的配置信息:

圖4.6 選擇軟件庫的配置信息

PC-Lint 常用的壹些軟件庫都提供了定制的配置信息,選擇這些定制信息有助於開發人員將錯誤或信息的註意力集中在自己的代碼中,選擇的支持庫配置將被引入到STD.LNT文件或新創建的STD_x.LNT 文件中。選擇常用的ATL、MFC、STL等配置,然後點擊“下壹步”按鈕:

圖4.7 選擇軟件名人的編程建議

這是壹個比較有意思的選項,就是讓妳選擇是否支持為使用C/C++編程提出過重要建議的作者的壹些關於編程方面的個人意見。如果選擇某作者的建議,那麽他提出的編程建議方面的選項將被打開,作者建議的配置名為AU-xxx.LNT,建議全部選擇,然後點擊“下壹步”按鈕:

圖4.8 選擇是否設置包含文件目錄

接下來是選擇用何種方式設置包含文件目錄,如果選擇使用-i 方式協助設置包含文件選項,下壹步就會要求輸入壹個或多個包含路徑。也可以跳過這壹步,以後手工修改配置文件,-i 選項體現在STD.LNT文件或新創建的STD_x.LNT 文件中,每個目錄前以-i 引導,目錄間以空格分隔,如果目錄名中有長文件名或包含空格,使用時要加上雙引號,如-i“E:\Program Files\Microsoft Visual C++\VC98\Indlue”。這裏我們選擇用-i 方式協助我們來設置,然後點擊“下壹步”按鈕:

圖4.9 選擇是否設置包含文件目錄

這壹步就是在下面的文本框裏可手工輸入文件包含路徑,用分號“;”或用ctrl+Enter換行來分割多個包含路徑,或者可以點中Brows,在目錄樹中直接選擇。填完後點擊“下壹步”按鈕:

圖4.10 提示std_x.lnt 已經被創建因為第三步選擇了“Create a new STD.LNT”選項,所以出現以下對話框,表

示std_x.lnt,std.lnt 在配置路徑下已被創建,這裏的std_a.lnt實際上包含了std.lnt 的信息,除此之外還有我們選擇的包含路徑和庫配置信息。單擊“確定”按鈕繼續:

圖4.11 提示是否為其它編譯環境創建配置文件

選擇“確定”後,會接著提示是否為其它編譯環境創建配置文件,如果選擇“是”將從第四步開始創建壹個新的配置文件。這裏我們選擇“否”:

圖4.12 是否替換std.lnt 文件

接下來會提示是否使用現在生成的std_x.lnt 文件取代std.lnt文件。如果選擇“是”將會用std_x.lnt 文件的內容覆蓋std.lnt 文件的內容,使得當前創建的配置選項成為以後創建新的配置文件時的缺省配置。通常我們選擇“否”繼續下壹步:

圖4.13 生成全局代碼檢查選項文件OPTIONS.LNT

接下來將會準備產生壹個控制全局編譯信息顯示情況的選項文件OPTIONS.LNT,該文件的產生方式有兩種,壹種是安裝程序對幾個核心選項逐壹解釋並提問妳是否取消該選項,如果妳選擇取消,則會體現在OPTIONS.LNT文件中,具體體現方式是在該類信息編碼前加-e,後面有壹系列逐壹選擇核心選項的過程。如果選擇第二種選擇方式,安裝文件會先生成壹個空的OPTIONS.LNT文件,等妳以後在實際應用時加入必要的選項。這裏選擇“No”選項,即不取消這些選項,然後單擊“下壹步”:

圖4.14 選擇所支持的集成開發環境

接著選擇所支持的集成開發環境選項,可選多個或壹個也不選,PC-Lint 提供了集成在多種開發環境中工作的功能,例如可集成在VC、BC、Source Insight中。這裏我們選擇Microsift Visual C++ 6.0,這樣env-v6.lnt就會被拷貝到配置路徑中。然後單擊“下壹步”:

圖4.15 選擇LIN.BAT 文件的使用方式

安裝程序會生成壹個LIN.BAT文件,該文件是運行PC-Lint 的批處理文件,為了使該文件能在任何路徑下運行,安裝程序提供了兩種方法供妳選擇。第壹種方法是讓妳選擇把LIN.BAT拷貝到任何壹個PATH 目錄下。第二種方法是生成壹個LSET.BAT文件,在每次使用PC-LINT前先運行它來設置路徑,或者把LSET.BAT 文件的內容拷貝到AUTOEXEC.BAT文件中。建議選擇第壹種方法,指定的目錄為當前PC-Lint 的安裝目錄。我們選擇第壹種方式:“copy LIN.BAT to one of my PATH directory”,然後單擊“下壹步”輸入PATH 目錄:

圖4.16 指定PATH 目錄

輸入安裝目錄C:\PCLint8作為PATH目錄,然後單擊“下壹步”按鈕進入最後的確認窗口:

圖4.17 確認完成配置

到此就完成了PC-Lint的安裝配置工作,單擊“完成”按鈕就可以使用PC-Lint。以上配置過程中在配置路徑下產生的多個*.lnt 文件,除了std.lnt、std_x.lnt和option.lnt為配置向導所生成,其它co-xxx.lnt、lib-xxx.lnt、env-xxx.lnt 均是從原始安裝目錄中拷貝出來的,在這個目錄下還有其它PCLint所支持的編譯器、庫及集成開發環境的lnt 配置文件,所有的lnt 文件均為文本文件。

上面的配置方法適合於剛開始接觸PC-lint 時使用,對於熟練的使用者可以直接編輯、編寫各*.lnt 配置文件安成上面的配置工作,或者定制出更適合自己使用的配置環境。 PC-Lint 的使用方法很簡單,可以用命令行方式進行,也可以集成到開發環

境中,下面就分別介紹這些用法

使用命令行方式

命令行的使用方式是PC-lint最基本的使用方式,也是其他各種集成使用方式的基礎,通過命令行可以完成PC-lint 的全部代碼分析工作。PC-lint 的命令行有下列形式:

Lint-nt option file1 [file1 file3 …]

其中的Lint-nt 是PC-lint 在Windows NT/2000/XP 平臺上的可執行程序Lint-nt.exe,它完成PC-lint 的基本功能;option 代表PC-lint可接受的各種選項,這是PC-lint最為復雜的部分,它的選項有300多種,可以分為:錯誤信息禁止選項、變量類型大小選項、冗余信息選項、標誌選項、輸出格式選項和其他選項等幾類,這些選項在本文的第三部分已經介紹過了;file為待檢查的源文件。

另外值得註意的壹點是,在命令行中可以加入前面提到的*.lnt配置文件名,並可以把它看作是命令行的擴展,其中配置的各種選項和文件列表,就和寫在命令行中具有壹樣的效果。

PC-Lint 與Visual C++集成開發環境(IDE)集成

在所有集成開發環境中,PC-Lint 8.0對VC++6和VC++7.0的支持是最完善的,甚至支持直接從VC 的工程文件(VC6是*.dsp,VC7是*.vcproj)導出對應工程的.Lnt文件,此文件包含了工程設置中的預編譯宏,頭文件包含

路徑,源文件名,無需人工編寫工程的.Lnt文件。

PC-Lint 與VC 集成的方式就是在VC 的集成開發環境中添加幾個定制的命令,添加定制命令的方法是選擇“Tools”的“Customize...”命令,在彈出的Customize窗口中選擇“Tools”標簽,在定制工具命令的標簽頁中添加定制命令。首先要為VC 的集成開發環境添加壹個導出當前工程的.Lnt配置文件的功能,導出.Lnt文件的命令行是:

lint-nt.exe +linebuf $(TargetName).dsp>$(TargetName).lnt 參數+linebuf表示加倍行緩沖的大小,最初是600 bytes,行緩沖用於存放當前行和妳讀到的最長行的信息。$(TargetName)是VC集成開發環境的環境變量,表示當前激活的Project 名字,註意要選中“Use Output Window”選項,這樣PC-Lint 就會將信息輸出到Output窗口中。填寫效果如圖4.18所示:

圖4.18 添加導出項目.Lnt文件的定制命令

接著添加壹個檢查當前文件的定制命令,檢查文件的命令行為:

lint-nt.exe -iC:\PCLint8 -u std_g.lnt env-vc6.lnt

$(FileName)$(FileExt)

第壹個參數-iC:\PCLint8為PC-Lint 搜索*.lnt 文件的目錄,這裏就是我們的配置路徑。std_g.lnt是為VC 編譯環境定制的配置文件,$(FileName)和$(FileExt)是VC 集成開發環境的環境變量,$(FileName)$(FileExt)表示當前文件的文件名。和導出.Lnt命令壹樣,這個命令也要使用VC 集成環境的Output窗口輸出檢查信息,所以要選中“Use Output Window”選項,如圖4.19所示:

圖4.19 添加檢查當前文件文件的定制命令

最後要添加壹個檢查整個工程的定制命令,檢查整個工程的命令行是:

lint-nt.exe +ffn -iC:\PCLint8 std_g.lnt env-vc6.lnt

$(TargetName).lnt>$(TargetName).chk

這個命令的結果就是將整個工程的檢查結果輸出到與工程同名的.chk文件中。參數中+ffn 表示Full File Names,可被用於控制是否使用的完整路徑名稱表示。

下面就以壹個簡單的例子介紹壹下如何在VC集成開發環境中使用PC-Lint。首先新建壹個“Win32 Console Application”類型的簡單工程(輸出“Hello World”),然後將本文第二章引用的例子代碼添加到工程的代碼中,最後將這個工程代碼所倚賴的包含目錄手工添加到配置文件中,因為代碼檢查要搜索stdafx.h這個預編譯文件,所以本例要手工添加工程代碼所在的目錄。本文的例子生成的配置文件是std_g.lnt,用文本文件打開std_g.lnt,在文件中添加壹行:

-iC:\unzipped\test

“C:\unzipped\test”就是例子工程所在的目錄(stdafx.h就在這個目錄)。如果妳的工程比較龐大,有很多頭文件包含目錄,就需要將這些目錄壹壹添加到配置文件。在確保代碼輸入沒有錯誤之後(有錯誤頁沒關系,PC-Lint會檢查出錯誤),就可以開始代碼檢查了。例子工程,打開要檢查的代碼文件,本例是test.cpp,然後選擇“Tools”菜單下的“PC_LINT 8.0 Check Current File”命令,Output 窗口輸出對本文件的檢查結果,如圖4.20所示:

圖4.20 檢查結果

PC-Lint 與source insight 集成

PC-Lint 與source insight的集成也是通過添加定制命令實現的,從“Options”菜單中選擇“Custom Commands”命令項。點擊“Add…”按鈕,如圖4.21所示,在彈出的“Custom Commands”窗口中完成以下輸入:

在Name欄中輸入“PC-lint Check Current File”,原則上這個名稱可以隨便起,只要妳能搞清楚它的含義就可以了;

在Run 欄中輸入“C:\PcLint\lint-nt -u -iC:\PcLint\Lint std_f env-si %f”其中C:\PcLint 是妳PC-LINT的安裝目錄,td_f表示為Source Insight定制的配置文件std_f.lnt;

在Output欄中選擇“Iconic Window”、“Capture Output”選項;

在Control 欄中選擇“Save Files First”;

在Source Links in Output 欄中選擇“Parse Links in Output”、“File,then Line”;

在Pattern 欄中輸入“^\([^ ]*\) \([0-9]+\)”;

圖4.21 在Source Insight中添加定制命令

命令添加完成後就可以點擊“Run”按鈕就可以對當前文件執行PC-Lint 檢查。為了方便使用,還可以點擊“Menu...”按鈕將這個定制命令添加到Source Insight的菜單中。

PC-Lint 與UltraEdit 集成

在UltraEdit 中集成PC-Lint的方法和Source Insight 類似,也是添加壹個定制命令菜單,具體實現方法是先單擊UltraEdit 的“高級”菜單中的“工具配置”命令,如圖4.22所示,在打開的配置窗口中依次輸入以下內容:

在“菜單項目名”欄輸入“PC-lint Check Current File”;

在“命令行”欄輸入以下命令:C:\PCLint\lint-nt –u -iC:\PCLint std env-si %f 其中,C:\PCLint是PC-Lint的安裝目錄,使用std.lnt 中的配置,由於UltraEdit 和Source Insightde 的檢查環境類似,所以借用env-si 中的環境配置;

在“工作目錄”欄輸入以下路徑:E:\code,這是代碼所在目錄;

選中“先保存所有文件”選項;

在“命令輸出”欄中,選中“輸出到列表”和“捕捉輸出”兩個選項;

點“插入”將命令行插入UltraEdit 的菜單中;

圖4.22 在UltraEdit中添加定制命令此時在UltraEdit 的“高級”菜單中會增加壹個“PC-lint Check Current File”菜單,點擊該菜單即可對當前文件執行PC-lint檢查。

  • 上一篇:跳大繩優秀作文
  • 下一篇:已知分辨函數y = ax 2+bx+c,當y=a-b+c時,求x,過程是如何求解的?
  • copyright 2024編程學習大全網