2012-12-10 22 views
2

我的公司有PC-lint可執行文件lint-nt.exe。如何將PC-lint與Visual C++ 2008集成

我試圖用這個PC - 皮棉集成了MS Visual Studio 2008中分析.C/的.cpp源。但是我沒有成功實現這個目標。

我讀:

http://www.gimpel.com/html/pub80/env-vc9.lnt

和類似的一個兩個其他網站等信息,但沒有成功。

我按照指示的步驟在Visual C++ 8中添加了一個外部工具,但是當我點擊新添加的工具時,pc-lint窗口立即打開並立即關閉,我懷疑它已經運行了任何分析。所以它不適合我。

然後我試圖在Windows命令提示符下運行棉絨NT.EXE作爲

lint-nt.exe +fce +fcp +cpp(cpp,cxx,cc) -i"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" +libdir +libh myfile.cpp

它確實執行分析,但它分析了大量的頭文件從Visual C++ INCLUDE文件夾(限制。 h sal.h iostream等),因爲我的源文件有#include <iostream>等等。

編輯︰我看到pc-lint有選項+/-libdir,+/-libh和這樣的選項,這可能會有所幫助,但我只是不能正確使用它們來避免編譯器頭的分析。

兩個問題:

  1. 如何防止PC-棉絨分析編譯器的頭文件 ,只分析我的源代碼文件?
  2. 如何將pc-lint集成到我正在使用的Visual C++ 2008 Express版本中的 ?

回答

1

如果您的公司具有Lint可執行文件,它也將具有PDF格式的PC-Lint手冊(如果不在紙上)。它與可執行文件一起在CD-ROM上提供。該手冊是你的朋友,想知道如何使用所有可用的選項。

你的問題:

  1. 若要快速開始,請從您的命令行的+fce+fcp+libdir+libh選項。我想你只是錯過了-wlib(1)選項,以保持沉默關於MS庫產生的許多警告。不要使用-wlib(0):您將使庫頭的所有選項都變爲無聲,但源自這些庫頭的錯誤配置可能會在代碼中產生大量警告,您無法找到隱藏在這些編譯頭中的罪魁禍首。
  2. user34341的鏈接並不是一個糟糕的開始,儘管我沿着精確的方向出現了一些問題。而Gimpel網站的env-vc9.lnt假定你已經安裝了PC-lint。閱讀你的問題,我想你沒有。創建這種安裝的細節包括生成PC-lint選項文件std。這個答案讓我們走得太遠,但是我寫了一個PDF文檔「How to wield PC Lint」,在痛苦的細節中解釋了這一切。如果你將the link from user34341options file from Gimpel和我的文檔結合起來,你應該沒問題。

此外:env-vc9.lnt只包含使用VC9環境(a.k.a Visual Studio)的選項;爲了支持C/C++編譯器,您需要合適的編譯選項文件http://www.gimpel.com/html/pub80/co-msc90.lnt及其關聯的(僅限Lint)頭文件http://www.gimpel.com/html/pub80/co-msc90.h

所以,你在VS2008開始集成之前,將它們下載和嘗試這個命令行:

lint-nt.exe +cpp(cpp,cxx,cc) co-msc90.lnt myfile.cpp 

,看看結果是比以前更好。 -i選項正常,但如果您爲Visual Studio正確設置環境變量(例如%INCLUDE%),則不需要。

而且多了一個提示:假設你還沒有這樣做的話,看看PC - 皮棉您有可用,並確保更新到最新的補丁級別的版本:7.50ad8.00x9.00i(當前版本);版本號下的鏈接會將您帶到相應的網站頁面。它會爲你節省很多麻煩。我知道獲得最新版本並不總是一種選擇,即使非常可取。

+0

試過了-wlib(1)co-msc90.lnt myfile.cpp現在我得到錯誤:PC-lint for C/C++(NT)Ver。版本Gimpel軟件1985-2004 co-msc90.lnt 14錯誤72:錯誤選項'+編譯器(search_actively_including_stac k)' co-msc90.lnt(55):錯誤72:錯誤選項'+ fwm' co-msc90.lnt(350):錯誤72:錯誤選項'+ rw(* type_traits)' --- Module:CTroposManager.cpp _ CTroposManager.cpp():Error 72:Bad option'+ rw * type_traits)」 _ 的#include 共同msc90.h(18):錯誤322:無法打開包含文件 '所屬類別' – goldenmean

+0

OK,如果你使用的是PC版本皮棉8.00p(2004年),我首先建議從2008年開始將版本修補到版本8.00x(這很容易,最近四年,免費!),並使用在我的帖子中指出的最新的8.00補丁頁上共同msc90.lnt。您收到的警告來自8.00p(2004!)之後版本中引入的功能,不受8.00p支持。 –

相關問題