PCLint(一)中的遺留問題已經解決。
問題一、Lint多個C檔案
方法一:
(1) 在LINT軟體目錄下建立PRJLINT.LNT檔案,檔案的第一行是使用的LINT設定檔名,從第二行開始,列出想所有要LINT的*.C檔案名稱,一行一個。如果要把結果輸出到檔案,在前面加上一行 "-os(檔案名稱) "(例如: "-os(c:/lint/result.txt) ")。範例:
YF_Config.lnt
// 以下為自己想要進行Lint的.C檔案,
G:/src/tt/tt1.c
G:/src/tt/tt2.c
…
(2) 在Source Insight中增加一條"PC-LINT PROJECT”命令,所有設定與"PC-LINT"設定相同,除了在"Custom Commands"對話方塊中 "RUN "編輯框的文字由"C:/LINT/LINT-NT.EXE filename.lnt %f"改為"C:/LINT/LINT-NT.EXE PRJLINT.LINT ",也就是把設定檔名改為PRJLINT.LNT,並去掉未尾的"%f "
方法二:
(1)開啟SourceInsight, 選擇Options-->Custom Commands-->Add, 輸入pclint_prj
(2)在Run中填寫: D:/UnxUtils/usr/local/wbin/find.exe %d -name *.c -o -name *.cpp | D:/UnxUtils/usr/local/wbin/xargs D:/PC-Lint/lint-nt -i"D:/UnxUtils/usr/local" -u D:/PC-Lint/std.lnt D:/PC-Lint/env-vc6.lnt
問題二:PCLint檢查庫標頭檔
方法:
在std.lnt中加入
-wlib(0)
這個參數是取消對編譯器庫檔案的審查,這個是相當重要的一個參數。如果
你只是想審查自己的代碼的話,請加上這個參數。不然,就會對編譯器的庫函數也
進行審查。
發現:在解決上述問題後,檢查應用程式,發現PCLint8.0中的MIRSA-C標準是1998的,一共127條。MIRSA-C標準是非常嚴格的,所以檢查出的問題很多,需要邊看標準邊修改。
參考資料:
《PC-Lint與C/C++代碼品質》http://dev.csdn.net/author/DL88250/ad095b3f77994a9ab2cfe3c695e3e004.html
《PC-Lint的使用方法(一)》http://blog.csdn.net/scucj/archive/2009/08/05/4409735.aspx 其中比較重要的是:2.2 PC-lint的介紹。
《linux pc-lint 》http://blog.csdn.net/robbie1314/archive/2010/06/21/5684927.aspx
《MISRA_C_1998》http://download.csdn.net/down/2072813/wkeliang