slickedit編譯設置
⑴ 誰推薦個好的C++編輯器
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
最近覺得以前用的Turbo C++編輯器太難操作了,請問下誰知道有什麼美觀又好操作的C++編輯器嗎?我覺得FLASH的腳本編輯界面就很好,哪位大蝦給推薦一個?重謝!
解析:
C++開發常用工具「群英會」
開發環境
---->Turbo c
DOS時代c語言開發的經典工具,目前適合兩類人使用:c語言beginner(尤其是學生一族),具有懷舊情節的專業人士:)
---->Visual C++ 6.0/7.0
穩定而強大的IDE開發環境,具有豐富的調試功能,定製宏的功能也是其一大特色。Microsoft的經典之作,功能強大自不必言說。附帶的一些工具也很不錯,比如:Spy++。但編譯器較之同類,支持c++標準的程度不夠好,尤其6.0及以前的版本。
---->BCB
Borland的C++ Builder是可以與VC匹敵的另一個功能強大的IDE,速度和穩定性稍遜,但對c++標准支持的程度較好。
---->Cygwin
Windows平台下的C++編譯器,基於gcc,又完全兼容Window特有的東西,比如對winsock的支持。從cygwin可以找到有關Cygwin的詳細信息。
---->Dev-c++
Windows平台下,一個類似VC、BCB的c++ IDE開發環境,屬於共享軟體。界面親切優雅,size也不大,其4.9.x版有中文語言支持,無需漢化。編譯器基於gcc,完全支持STL。但是對於規模較大的軟體項目,恐怕難以勝任。可以從bloodshed/dev/devcpp找到有關Dev-c++的有關信息。
---->Source Insight
有著和Dev c++一樣漂亮的界面,提供代碼的編輯和察看功能,具有豐富的語法加亮功能,可以像VC一樣自動彈出成員函數的提示,並具有快速方便的函數跳轉功能(但是跳轉速度似乎有點慢)。只是默認設置不適合時,需要仔細的調整和修改。無法查找經typedef之後的名字。
輔助工具
---->Visual Assist
VC IDE環境下的輔助編程工具,能識別各種關鍵字、函數、成員變數,自動給出tip,並自動更正大小寫錯誤,標示拼寫錯誤等。是VC開發的良好伴侶。
---->Understand for C++
一款c/c++IDE編程的輔助工具,支持反向工程,代碼導向和一些統計功能,從scitools可以找到有關Understand for C++的詳細信息。
程序編輯器
---->EditPlus
一款很不錯的文本編輯軟體,功能強大卻又十分輕巧。支持不同語言的語法加亮,還有Project組織功能,具有豐富的自定義功能。通過設置User Tool,可以和其他語言編譯器結合,形成一個簡單的IDE。
---->Ultra Edit
功能和EditPlus相當碧神,通過腳本文件提供的配置功能可以定製編輯環境,但自6.0版以後一直沒多大變化,就編程而言,自定義設置沒有EditPlus方便。
---->EMACS
公認的世界上功能最多謹此,最復雜的文本編輯器,其實也可以當作程序員用的編輯器。
---->Visual Slick Edit
一個功能強大的程序員用編輯器。最值得一提的是其定製功能,很好用,可以和EMACS相比。自帶了一套PCODE解釋器,用c的語法,還可以掛接動態庫。配合mingw一起使用很方便。從slickedit可以找到有關SlickEdit的詳細信息。
---->IQEdit
全功能的程序員用編輯器,界面很漂亮,從pwksofare可以悔晌虧找到有關IQEdit的詳細信息。
UML/建模
---->Rational Rose
強大的建模工具,早已「家喻戶曉」,功過自然不必多加評說了。從rationalsofare可以找到有關Rational Rose的詳細信息。
---->Visual Modeler
MS Visual Studio 6.0所附的小工具。屬於Rational和MicroSoft合作的戰略產品,是Rose的簡化版。
---->Visio
Microsoft的建模工具,感覺更人性化一些,但功能沒有Rose多、強、專,支持正向的代碼生成,以及對代碼的反向工程。
---->Together
另一款功能強大的建模工具,用java編寫而成,口碑不錯,不過速度稍稍慢了一些。從togethersoft可以找到有關Togather的詳細信息,另外,以下網址提供了一個有關Together的教程: cc.puv.fi/~tka/kurssit/Tietojarjestelmien_suunnittelu/together/TCCGuide6
---->Visual UML
支持多種語言類型,比如:VC、VB、DELPHI、CORBA IDL等,可以直接從UML設計圖生成代碼,簡單易用,完全適合Personal use,界面也很清爽。從visualObject可以找到有關Visual UML的詳細信息。
---->SmartDraw
通用圖表製作軟體,可以用來製作組織機構圖、流程圖、統計圖表等。隨帶有圖庫,基本滿足製作各類圖表的需要。從 *** artdraw可以找到有關SmartDraw的詳細信息。
---->PlayCase
國產面向對象的建模軟體,兼容UML和IDEF,輕量級軟體,只是界面看起來有點簡朴,乃是高展先生用Delphi完成的。
版本控制
---->ClearCase
Rational的版本控制管理軟體,功能強大,可以控制多種類型的文檔,甚至包括Word、Excel、PowerPoint文檔。但使用復雜,不易上手,且不是免費軟體。
---->CVS
為基於Web的分布式協同開發提供了版本控制管理手段,且是免費軟體,可以通過腳本定製功能。但在許可權控制方面功能相對較弱。
---->VSS
微軟的版本控制管理工具,功能相對簡單,適合於小型團隊開發,將其整合到微軟的其他開發工具中,使用起來十分方便。
---->SourceOffSite
微軟為開發人員提供的遠程訪問VSS資料庫的工具,使資料庫得以遠程更新,以支持遠程辦公。其他的版本管理工具還包括:PVCS、VCS、RCS等。
XML
---->expat
用於讀取和處理XML文檔的c函數庫,最初是James Clark的個人作品,簡單輕巧,且速度快。但支持的編碼方式有限,最遺憾的是不支持中文。從expat.sourcefe可以找到有關expat的詳細信息。
---->xml4c
IBM的XML Parser,用c++語言寫就,功能超級強大。號稱支持多達100種字元編碼,能夠支持中文,適合於大規模的xml應用。若只是很小范圍的應用,則非最佳選擇,畢竟,你需要「背負」約12M左右的dll的沉重負擔。從alphaworks.ibm/tech/xml4c可以找到有關xml4c的詳細信息。
---->Xerces c++
Apache的XML項目,同樣是c++實現,來源於IBM的xml4c,因此編程介面也是和xml4c一致的。但是目前只支持少數的字元編碼,如ASCII,UTF-8,UTF-16等,不能處理包含中文字元的XML文檔。從 xml.apache/xerces-c可以找到有關Xerces c++的詳細信息。
測試
---->CppUnit
一個c++的單元測試框架,可以通過派生測試類的方式,定製具體的測試方案。xUnit家族的一員,從JUnit移植而來,JUnit是Java語言的單元測試框架。從cppuint.sourcefe可以找到有關CppUint的詳細信息。
---->Rational ROBOT
Rational的自動化測試工具,通過編寫腳本的方式提供自動化測試特性。其GUI方式的腳本錄制功能,有助於對GUI軟體進行功能測試;其VU方式的腳本錄制功能,有助於測試某些軟體的數據通訊功能。
---->Rational Purify
同樣是Rational的自動化測試工具,不需要被測程序的源代碼,可以用來檢查內存訪問錯誤、Windows API調用錯誤等,以完成軟體的可靠性測試,屬於白盒測試。
其他的Rational測試工具還包括:TestFactory、PureCoverage、TestManager等。
日誌
---->log4cpp
一個用於日誌記錄的c++函數庫,可以將內容以定製的方式記錄到不同的目的地,比如:文件、控制台syslog等,同時還可以通過控制記錄級別來屏蔽掉某些無關記錄。從log4cpp.sourcefe可以找到有關log4cpp的詳細信息。
注釋
---->Doc++
注釋文檔生成工具,根據源程序中的文檔注釋,可以輸出TeX和HTML格式的文檔。除了支持c/c++語言外,還支持IDL和java。僅提供命令行使用方式。從docpp.sourcefe可以找到有關Doc++的詳細信息。
---->Doxygen
注釋文檔生成工具,較之Doc++功能更為齊全,可以生成包括HTML、PDF、RTF在內的多種格式的文檔,並有GUI界面,除了支持c/c++語言外,還支持IDL、java、PHP、c#等。從stack.nl/~dimitri/doxygen可以找到有關Doxygen的詳細信息。
⑵ 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:pclint8config.exe。配置文件是代碼檢查的依據,PC-lint 自帶了一個標准配置文件std.lnt,但是這個文件沒有目錄包含信息(頭文件目錄),通常對代碼檢查的時候都需要指定一些特殊的包含目錄,所以要在標准配置的基礎上生成針對某個項目代碼檢查的定製配置。下面就以Microsoft Visual C++ 6的開發環境為例,介紹一下定製配置的過程。
運行C:pclint8config.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 FilesMicrosoft Visual C++VC98Indlue」。這里我們選擇用-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 的安裝目錄。我們選擇第一種方式:「 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 est
「C:unzipped est」就是例子工程所在的目錄(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:PcLintlint-nt -u -iC:PcLintLint 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:PCLintlint-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檢查。
⑶ visualstudio2012計算代碼
VS2005,2003和2002的開源行計數器可在此處獲得:
http://www.wndtabs.com/
此處還討論了創建一個計算VS插件的行,在Codeproject上完成代碼
http://www.codeproject.com/KB/macros/LineCounterAddin.aspx
另外Slick Edit Gadgets有一個很好的行計數器,這里:
http://www.slickedit.com/procts/slickedit
和Microsoft Visual Studio Team System 2008包括一個良好的行計數器。
請記住:
通過代碼行測量編程進度就像按重量測量飛機構建進度一樣。 比爾蓋茨
#3樓
在Visual Studio Team System 2008中,您可以從菜單Analyze - >'Calculate Code Metrics for Solution'中進行操作,它將為您提棗碰坦供整個解決方案的行數(除其他外g )
#4樓
我發現powershell對此很有用。 我認為LoC無論如何都是一個非常虛假的指標,所以我不相信任何更正式的要求。
從一個小的解決方案的目錄:
PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>
這將計算所有解決方案的.cs和.xaml文件中的非空行。 對於更大的項目,我只使用了不同的擴展名列表:
PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>
為什麼在單個命令行執行時會使用整個應用程序? :)
#5樓
cloc是一個出色的命令行,基於Perl的Windows可執行文件,它將分解按文件格式分組的空白行,注釋行和源代碼行。
現在它不會專凳桐門在VS解決方案文件上運行,但它可以通過目錄遞吵脊歸,您可以根據需要設置文件名過濾器。
以下是其網頁的示例輸出:
prompt> cloc perl-5.10.0.tar.gz
4076 text files.
3883 unique files.
1521 files ignored.
http://cloc.sourceforge.net v 1.07 T=10.0 s (251.0 files/s, 84566.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code scale 3rd gen. equiv
-------------------------------------------------------------------------------
Perl 2052 110356 112521 309778 x 4.00 = 1239112.00
C 135 18718 22862 140483 x 0.77 = 108171.91
C/C++ Header 147 7650 12093 44042 x 1.00 = 44042.00
Bourne Shell 116 3402 5789 36882 x 3.81 = 140520.42
Lisp 1 684 2242 7515 x 1.25 = 9393.75
make 7 498 473 2044 x 2.50 = 5110.00
C++ 10 312 277 2000 x 1.51 = 3020.00
XML 26 231 0 1972 x 1.90 = 3746.80
yacc 2 128 97 1549 x 1.51 = 2338.99
YAML 2 2 0 489 x 0.90 = 440.10
DOS Batch 11 85 50 322 x 0.63 = 202.86
HTML 1 19 2 98 x 1.90 = 186.20
-------------------------------------------------------------------------------
SUM: 2510 142085 156406 547174 x 2.84 = 1556285.03
-------------------------------------------------------------------------------
第三代等效量表是對第三代語言所需代碼量的粗略估計。 不是非常有用,但無論如何都很有趣。
#6樓
這里的答案有點過時,可能來自vs 2008時間。 因為在較新的Visual Studio版本2010/2012中,此功能已內置。 因此,沒有理由使用任何擴展或工具。
計算代碼行的功能 - 計算指標。 有了它,您可以計算每個項目或解決方案的指標(LOC,維護指數,Cyclomatic指數,繼承深度)。
在解決方案資源管理器中右鍵單擊解決方案或項目
並選擇「計算指標」
以後可以將用於分析和聚合的數據導入Excel。 同樣在Excel中,您可以過濾掉生成的類或指標中的其他噪音。 這些指標(包括代碼行LOC)也可以在構建過程中收集,並包含在構建報告中
#7樓
顯然工具更容易,但我覺得很酷在powershell :)
此腳本查找.sln文件中的所有.csproj引用,然後在每個csproj文件中找到包含在編譯中的文件。 對於包含在編譯中的每個文件,它會創建一個具有屬性的對象:Solution,Project,File,Lines。 它將所有這些對象存儲在列表中,然後根據需要對數據進行分組和投影。
#path to the solution file e.g. "D:\Code\Test.sln"
$slnFile = "D:\Code\Test.sln"
#results
$results = @()
#iterate through .csproj references in solution file
foreach($projLines in get-item $slnFile | Get-Content | Select-String '".*csproj')
{
$projFile = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($slnFile), [regex]::Match($projLines,'[^"]*csproj').Value)
$projFolder = [System.IO.Path]::GetDirectoryName($projFile)
#from csproj file: get lines for files to compile <Compile Include="..."/>
$includeLines = get-item $projFile | Get-Content | Select-String '<Compile Include'
#count of all files lines in project
$linesInProject = 0;
foreach($fileLine in $includeLines)
{
$includedFilePath = [System.IO.Path]::Combine($projFolder, [Regex]::Match($fileLine, '"(?<file>.*)"').Groups["file"].Value)
$lineCountInFile = (Get-Content $includedFilePath).Count
$results+=New-Object PSObject -Property @{ Solution=$slnFile ;Project=$projFile; File=$includedFilePath; Lines=$lineCountInFile }
}
}
#filter out any files we dont need
$results = $results | ?{!($_.File -match "Designer")}
#print out:
"---------------lines per solution--------------"
$results | group Solution | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
"---------------lines per peoject--------------"
$results | group Project | %{$_.Name + ": " + ($_.Group | Measure-Object Lines -Sum).Sum}
#8樓
這是Trick ..它也計算Js文件。
http://www.spoiledtechie.com/post/2011/11/22/How-To-Count-Lines-of-Code-in-Visual-Studio.aspx
#9樓
正則表達式在VS2010和2012之間發生了變化,因此這里的大多數正則表達式解決方案都不再有效
(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+
將找到所有非空白的行,不僅僅是一個括弧('{'或'}'),而不僅僅是#include或其他預處理器。
使用Ctrl - shift - f並確保啟用正則表達式。
VS 2010及更早版本的相應正則表達式為
^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+
#10樓
以下是Visual Studio 2012/2013/2015的更新,適用於那些想要執行「查找」選項(我認為最簡單)的人:此RegEx將查找包含多個排除項的所有非空白行,以提供最准確的結果。
在「查找」框中輸入以下RegEx。 請務必選擇「使用正則表達式」選項。 根據您的需要將搜索選項更改為「當前項目」或「整個解決方案」。 現在選擇「全部查找」。 在「 查找結果」窗口的底部,您將看到「匹配行」,即代碼行數。
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
此RegEx不包括以下項目:
評論
// This is a comment
多行注釋(假設行正確注釋,每行前面有*)
/* I am a
* multi-line
* comment */
用於智能感知的XML
/// <summary>
/// I'm a class description for Intellisense
/// </summary>
HTML評論:
<!-- I am a HTML Comment -->
使用陳述:
using System;
using System.Web;
打開花括弧:
{
閉合花括弧:
}
注意:大括弧之間的任何內容都將包含在搜索中,但在此示例中,只計算4行代碼,而不是18個實際的非空白行:
public class Test
{
/// <summary>
/// Do Stuff
/// </summary>
public Test()
{
TestMe();
}
public void TestMe()
{
//Do Stuff Here
/* And
* Do
* Stuff
* Here */
}
}
我創建了這個以給我一個比以前的選項更准確的LOC計數,並認為我會分享。 老闆喜歡LOC計數,所以我堅持了一段時間。 我希望其他人可以找到這個有用的,如果您有任何問題或需要幫助讓它工作,請告訴我。
#11樓
其他簡單工具適用於VS2008(開源): http : //www.accendo.sk/Download/SourceStat.zip
#12樓
您可以使用免費工具SourceMonitor
提供了許多措施:代碼行,語句計數,復雜性,塊深度
通過圖表輸出圖形
#13樓
您可以使用Visual Studio代碼指標PowerTool 10.0 。 它是一個命令行實用程序,可以為您計算託管代碼的一些指標(包括代碼行)。 您可以獲得一個VS 2010插件, 將該工具引入Visual Studio ,並使其快速選擇菜單項並單擊「Analyze Solution」。
#14樓
找到這個提示: LOC與VS查找和替換
不是插件,如果這就是你要找的東西。
#15樓
一個簡單的解決方案是搜索所有文件。 使用通配符時鍵入「*」。 哪個會匹配所有線路。 在查找結果窗口的末尾,您應該看到排序的一行:
Matching lines: 563 Matching files: 17 Total files searched: 17
當然,這對於大型項目來說並不是很好,因為所有行都被配對並載入到內存中以便在查找結果窗口中顯示。
參考:
高級示例
#16樓
我更喜歡OxyProject Metrics VS Addin。
#17樓
嘗試neptuner。 除了LoC之外,它還為您提供空格,製表符,注釋行等內容。 http://neptuner.googlecode.com/files/neptuner_0_30_windows.zip
#18樓
在Visual Studio 2015中,轉到「分析」菜單,然後選擇「計算代碼度量標准」。
#19樓
Visual Studio 2010 Ultimate具有此內置功能。
分析 - >計算代碼度量標准
#20樓
您可以在Visual Studio 2010中使用Project Line Counter載入項。通常它不能與Visual Studio 2010一起使用,但它可以使用有用的.reg文件: http : //www.onemanmmo.com/index。 PHP?CMD = newsitem及評論= news.1.41.0
#21樓
使用Visual Studio 2010 Ultimate中的菜單 - >分析 - >計算代碼度量標准選項。
#22樓
我想出了一個快速而臟的PowerShell腳本,用於計算文件夾結構中的行數。 它不像其他答案中引用的其他工具那樣功能齊全,但我認為在項目或解決方案中提供相對於彼此的代碼文件大小的粗略比較是足夠好的。
腳本可以在這里找到:
https://gist.github.com/1674457
#23樓
我用了Ctrl + Shift + F. 接下來,在搜索框中輸入\\n並啟用正則表達式框。 然後在查找結果中,在屏幕的末尾是搜索到的文件數和找到的代碼行。
#24樓
同意Ali Parr。 WndTab Line Counter addin就是這樣一個工具。 http://www.codeproject.com/KB/macros/linecount.aspx
從下載站點搜索以查找一些相關工具也是一個好主意。 http://www.cnet.com/1770-5_1-0.html?query=code+counter&tag=srch
#25樓
對於未來的讀者,我想建議Visual Studio 2010的DPack擴展 。
它內置了大量的實用程序,包括一個行計數器,它表示有多少行是空白的,代碼等等。
原文鏈接:https://es.sofbug.com/question/5DoH
點
⑷ 如何在slickedit里調用keilC編譯器
如何在slickedit里調用keilC編譯器
預備知識:說白了就是要弄清slickedit的脾氣和編譯器的脾氣,這樣才能把兩個撮合到一塊。
1.各編譯器的編譯/鏈接命令和相關命令行參數
2.slickedit命令行中%f、%bn等內部環境變數的含義
有Slickedit與KeilC有兩個脾氣不合的問題需要處理:
1.a51.exe/c51.exe等程序的Errorlevel值是分成了0,1,2,3三種,而slickedit只認0和>0兩種,0表示no error,>0表示有error。這樣的話當vsbuild在complier階段調用c51.exe編譯出現warning時,得到的errorlevel是1,誤認為有錯誤,就不執行後面的linker命令了。
2.slickedit的linker命令行中,%f變數代表的object文件列表是以逗號分格的,而keilC的bl51.exe需要的文件列表參數是以空格分格,需要做一定的轉換。
為了解決這個問題,我這里使用批處理文件將文件列表與errorlevel進行轉換。
轉載,僅供參考。