C++語言程式碼檢查工具PC-Lint簡介(轉)

ba發表於2007-08-15
C++語言程式碼檢查工具PC-Lint簡介(轉)[@more@]概述

PC-Lint 是一個歷史悠久,功能異常強勁的靜態程式碼檢測工具。它的使用歷史可以追溯到計算機程式設計的遠古時代(30多年以前)。經過這麼多年的發展,它不但能夠監測出許多語法邏輯上的隱患,而且也能夠有效地幫你提出許多程式在空間利用、執行效率上的改進點,在很多專業級的軟體公司,比如Microsoft, PC-Lint檢查無錯誤無警告是程式碼首先要過的第一關,我個人覺得,對於小公司和個人開發而言,PC-Lint也非常重要,因為基於開發成本考慮,小公司和個人往往不能拿出很多很全面的測試,這時候,PC-Lint的強勁功能可以很好地提高軟體的質量。

功能

1) PC-Lint是一種靜態程式碼檢測工具,可以說,PC-LINT是一種更加嚴格的編譯器,不僅可以象普通編譯器那樣檢查出一般的語法錯誤,還可以檢查出那些雖然完全合乎語法要求,但很可能是潛在的、不易發現的錯誤。

2) PC-lint不但可以檢測單個檔案,也可以從整個專案的角度來檢測問題,因為C語言編譯器固有的單個編譯,這些問題在編譯器環境下很難被檢測,而PC-Lint在檢查當前檔案的同時還會檢查所有與之相關的檔案,可想而知,它會對我們有很大的幫助。

3) PC-lint支援幾乎所有流行的編輯環境和編譯器,比如Borland C++從1.x到5.x各個版本、Borland C++ Build、GCC、VC,VC.net、watcom C/C++、Source insight、intel C/C++等等,也支援16/32/64的平臺環境。

4) 支援Scott Meyes的名著(Effective C++/More Effective C++)中說描述的各種提高效率和防止錯誤的方法。

四步速成PC-Lint概述

這麼好的工具,當然是先拿起來用了再說,這裡分為四步,保證你馬上可以使用PC-Lint了,當然,如果你上手以後,想細緻深入學習這個工具,可以在網上查詢相應的資料,另外在我的另一個系列文章《軟體開發的七種武器》中有一篇是講述 PC-Lint使用的,比這篇要深入細緻一些,如有興趣,也可以看看。

第一步:安裝&設定

安裝和通常的軟體沒有什麼不同。安裝結束後在PC-Lint安裝目錄下執行CONFIG.exe,各項設定簡要解釋如下:

a) 第一步,給出PC-Lint的安裝路徑和選擇設定的儲存檔案。
b) 第二步,選擇你所使用的C/C++編譯器:比如Visual C++ 6.x。
c) 第三步,選擇記憶體模式:比如32 bit Flat Model。
d) 第四步,選擇所使用的庫:比如MFC,OWL,等,可多選,在windows下開發的一般要選中windows 32 bit。
e) 第五步,C++程式設計提出過重要建議的作者,選擇某作者後,他提出的程式設計建議方面的選項將被開啟:比如Scott Meyers,可不選。
f) 第六步,標頭檔案的設定:可在後面步驟中手工新增。

第二步:整合PC-Lint到選定的編譯環境

當你在上述第二步中選擇了編譯器後,可以在PC-Lint目錄下找到一個"env-選用的編輯環境.lnt"檔案,比如對於Source insight 是env-si.lnt,對於vc6是env-vc6.lnt。開啟此檔案,根據上面的描述,配置你的編譯器,下面以VC6為例:

·選取選單 tools | customize.....
·選取 Tools 標籤
·點按主對話方塊上方的虛線小方框 New
·輸入 name: PC-LINT
·輸入 Command: c:lintlint-nt.exe,假設安裝到此路徑
·輸入 Arguments: c:lintstd.lnt ?(FilePath)?7)選擇 (x) Use Output Window
·Close

第三步:Lint單個C檔案

a) 開啟一個C檔案
b) 執行第2)步整合上的PC-Lint選單項
c) LINT結果會在一兩秒之內出來。告警的解釋可參考LINT安裝目錄下MSG.TXT檔案,開啟檔案,透過查詢告警號碼定位,就可以看到比較詳細的說明。

第四步:Lint多個C檔案

a) 在LINT軟體目錄下建立PRJLINT.LNT檔案,檔案的第一行是使用的LINT配置檔名,從第二行開始,列出想所有要LINT的*.C檔名,一行一個。如果要把結果輸出到檔案,在前面加上一行"-os(檔名)"(例如:"-os(c:lint esult.txt)")。樣例: YF_Config.lnt
// 以下為自己想要進行Lint的.C檔案,
G:src t t1.c
G:src t t2.c


b) 用2)介紹的方法在Source Insight"中介紹的方法增加一條"PC-LINT PROJECT"命令,所有設定與"PC-LINT"設定相同,除了

①"Custom Commands"對話方塊中"RUN"編輯框的文字由"C:LINTLINT-NT.EXE filename.lnt %f"改為"C:LINTLINT-NT.EXE PRJLINT.LINT",也就是把配置檔名改為PRJLINT.LNT,並去掉未尾的"%f"

②設定的快捷鍵與PC-LINT要區別開來

利用下面的DOS命令可以用來得到一堆*.C檔案的清單。例如:

① 列出C:SRC下所有*.C檔案,並儲存到C:SRCFILELIST.TXT:

DIR C:SRC*.C /B >C:SRCFILELIST.TXT

② 列出C:SRC下,包括SRC的子目錄下的所有的*.C檔案,,並新增到C:SRCFILELIST.TXT的未尾:

DIR C:SRC*.C /S/B >>C:SRCFILELIST.TXT
PC-Lint 重要檔案說明
Msg.txt :解釋告警的內容。
選用的.lnt :包含標頭檔案的路徑,-i選項。
env-選用的編輯環境.lnt :講述如何將PC-lint與對應的編輯環境結合起來。
co-xxx.lnt :選定的編譯器。
STD.LNT :記憶體模型等全域性性東西。
LIB-xxx.LNT :庫型別的列表,包括標準C/C++庫,MFC庫,OWL庫等等。
AU-xxx.LNT :C++程式設計提出過重要建議的作者,選擇某作者後,他提出的程式設計建議方面的選項將被開啟。
OPTIONS.LNT :反映全域性編譯資訊顯示情況的選項檔案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-957394/,如需轉載,請註明出處,否則將追究法律責任。

相關文章