• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 29  文章 - 13  trackbacks - 0
            <2006年12月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            相冊

            收藏夾

            c++

            Linux

            Tools

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            關(guān)于c++編譯器和IDE的介紹


            2006-07-13 13:19:30?武漢白云黃鶴站
            ?
            關(guān)于c++編譯器和IDE的一些介紹?
            亦冰?發(fā)表于?2005-4-9?22:49:00?


            發(fā)信人:?lzwm?(來者|楚風(fēng)),?信區(qū):?CS
            標(biāo)??題:?今日一貼~~關(guān)于c++編譯器和IDE的一些介紹
            發(fā)信站:?武漢白云黃鶴站?(2005年04月09日21:29:33?星期六)

            關(guān)于c++編譯器和IDE的一些介紹:)

            ?

            撰文/?曾毅?陶文


            『引用』

            .本文2004年5月首發(fā)于《CSDN開發(fā)高手》,版權(quán)歸該雜志與《程序員》雜志社所有。雜志
            限于篇幅部分內(nèi)容有所刪節(jié),此處版本為相對完整版本。

            ?


            前言。

            撰寫本文的初衷并不打算帶領(lǐng)大家體驗(yàn)古老的C++歷史,如果你想了解C++的歷史與其前期
            發(fā)展中諸多技術(shù)的演變,你應(yīng)當(dāng)去參考Bjarne的《The?Design?and?Evolution?of?C++》。
            當(dāng)然也不打算給大家一個無所不包的寶典(并非不想:其一是因水平有限,其二無奈C++之
            博大精深),所給出的僅僅是一些我們認(rèn)為對于想學(xué)習(xí)C++的廣大讀者來說最重要并且觸手
            可及的開發(fā)與學(xué)習(xí)資源。

            本文介紹并分析了一些編譯器,開發(fā)環(huán)境,庫,少量的書籍以及參考網(wǎng)站,并且盡可能嘗
            試著給出一個利用這些資源的導(dǎo)引,望對如同我們一樣的初學(xué)者能夠有所裨益。

            編譯器

            在C++之外的任何語言中,編譯器都從來沒有受到過如此之重視。因?yàn)镃++是一門相當(dāng)復(fù)雜
            的語言,所以編譯器也難于構(gòu)建。直到最近我們才開始能夠使用上完全符合C++標(biāo)準(zhǔn)的編譯
            器(哦,你可能會責(zé)怪那些編譯器廠商不能盡早的提供符合標(biāo)準(zhǔn)的編譯器,這只能怪他們
            各自維系著自身的一套別人不愿接受的標(biāo)準(zhǔn))。什么?你說這無關(guān)緊要?哦,不,你所需
            要的是和標(biāo)準(zhǔn)化C++高度兼容的編譯環(huán)境。長遠(yuǎn)來看,只有這樣的編譯器對C++開發(fā)人員來
            說才是最有意義的工具,尤其是對于程序設(shè)計語言的學(xué)習(xí)者。一至性讓代碼具備可移植性
            ,并讓一門語言及其庫的應(yīng)用更為廣泛。嗯,是的,我們這里只打算介紹一些公認(rèn)的優(yōu)秀
            編譯器。

            Borland?C++

            這個是Borland?C++?Builder和Borland?C++?Builder?X這兩種開發(fā)環(huán)境的后臺編譯器。(
            哦,我之所以將之分為兩種開發(fā)環(huán)境你應(yīng)當(dāng)能明白為什么,正如Delphi7到Delphi8的轉(zhuǎn)變
            ,是革命性的兩代。)Borland?C++由老牌開發(fā)工具廠商Borland傾力打造。該公司的編譯
            器素以速度快,空間效率高著稱,Borland?C++?系列編譯器秉承了這個傳統(tǒng),屬于非常優(yōu)
            質(zhì)的編譯器。標(biāo)準(zhǔn)化方面早在5.5版本的編譯器中對標(biāo)準(zhǔn)化C++的兼容就達(dá)到了92.73%。目
            前最新版本是Borland?C++?Builder?X中的6.0版本,官方稱100%符合ANSI/ISO的C++標(biāo)準(zhǔn)以
            及C99標(biāo)準(zhǔn)。嗯...這正是我前面所指的"完全符合C++標(biāo)準(zhǔn)的編譯器"。

            Visual?C++

            這個正是我們熟知的Visual?Studio?和?Visual?Studio.net?2002,?2003以及2005?Whidbe
            y中帶的C++編譯器。由Microsoft公司研制。在Visual?Studio?6.0中,因?yàn)榫幾g器有太多
            地方不能與后來出現(xiàn)的C++標(biāo)準(zhǔn)相吻合而飽受批評(想想你在使用STL的時候編譯時報出的
            那些令人厭惡的error和warning吧)。VC++6.0對標(biāo)準(zhǔn)化C++的兼容只有83.43%。但是隨著
            C++編譯器設(shè)計大師Stanley?Lippman以及諸多C++社群達(dá)人的加盟,在Visual?Studio.NET
            ?2003中,Visual?C++編譯器已經(jīng)成為一個非常成熟可靠的C++編譯器了。Dr.Dobb's?Jour
            nal的評測顯示Visual?C++7.1對標(biāo)準(zhǔn)C++的兼容性高達(dá)98.22%,一度成為CBX之前兼容性最
            好的編譯器。結(jié)合強(qiáng)大的Visual?Studio.NET開發(fā)環(huán)境,是一個非常不錯的選擇。至于Whi
            dbey時代的Visual?C++,似乎微軟所最關(guān)注的是C++/CLI......我們不想評論微軟下一代的
            C++編譯器對標(biāo)準(zhǔn)化兼容如何,但他確實(shí)越來越適合.NET?(其實(shí)你和我的感覺可能是一樣的
            ,微軟不應(yīng)當(dāng)把標(biāo)準(zhǔn)C++這塊肥肉丟給Borland,然而微軟可能并不這樣認(rèn)為)。


            GNU?C++

            著名的開源C++編譯器。是類Unix操作系統(tǒng)下編寫C++程序的首選。特點(diǎn)是有非常好的移植
            性,你可以在非常廣泛的平臺上使用它,同時也是編寫跨平臺,嵌入式程序很好的選擇。
            另外在符合標(biāo)準(zhǔn)這個方面一直都非常好,GCC3.3大概能夠達(dá)到96.15%。但是由于其跨平臺
            的特性,在代碼尺寸速度等優(yōu)化上略微差一點(diǎn)。

            基于GNU?C++的編譯器有很多,比如:

            l??????????Mingw:http://www.mingw.org/

            GCC的一個Windows的移植版本(Dev-C++的后臺)

            l??????????Cygwin:http://sources.redhat.com/cygwin/

            GCC的另外一個Windows移植版本是Cygwin的一部分,Cygwin是Windows下的一個Unix仿真環(huán)
            境。嚴(yán)格的說是模擬GNU的環(huán)境,這也就是"Gnu's?Not?Unix"要表達(dá)的意思,噢,扯遠(yuǎn)了,
            這并不是我們在這里關(guān)心的實(shí)質(zhì)內(nèi)容。

            l??????????Djgpp:http://www.delorie.com/djgpp/

            這是GCC的DOS移植版本。

            l??????????RSXNT:http://www.mathematik.uni-bielefeld.de/~rainer/

            這是GCC的DOS和Windows移植版本。


            Intel?C++

            著名CPU制造廠商Intel出品的編譯器,Special?Design?for?Intel?x86!對于Intel?x86結(jié)
            構(gòu)的CPU經(jīng)過特別的優(yōu)化。在有些應(yīng)用情況下,特別是數(shù)值計算等高性能應(yīng)用,僅僅采用I
            ntel的編譯器編譯就能大幅度的提高性能。


            Digital?Mars?C++

            網(wǎng)絡(luò)上提供免費(fèi)下載,Zortech/Symantec?C++的繼承者,其前身在當(dāng)年慘烈的C++四國戰(zhàn)中
            也是主角之一。

            ?

            開發(fā)環(huán)境

            開發(fā)環(huán)境對于程序員的作用不言而喻。選擇自己朝夕相處的環(huán)境也不是容易的事情,特別
            是在IDE如此豐富的情況下。下面就是我們推薦的一些常見的C++開發(fā)環(huán)境,并沒有包括一
            些小型的,罕見的IDE。其中任何一款都是功能豐富,可以用作日常開發(fā)使用的。對于不同
            層面的開發(fā)者,請參見內(nèi)文關(guān)于適用對象的描述。

            ?

            Visual?Studio?6.0

            這個雖然是Microsoft公司的老版本的開發(fā)環(huán)境,但是鑒于其后繼版本Visual?Studio.NET
            的龐大身軀,以及初學(xué)者并不那么高的功能要求,所以推薦這個開發(fā)環(huán)境給C++的初學(xué)者,
            供其學(xué)習(xí)C++的最基本的部分,比如C的那部分子集,當(dāng)然你別指望他能夠支持最新的C99標(biāo)
            準(zhǔn)。在日常的開發(fā)中,仍然有很多公司使用這個經(jīng)典穩(wěn)定的環(huán)境,比如筆者就看曾親見有
            些公司將其編譯器替換為GCC做手機(jī)開發(fā)之用。


            Visual?Studio.NET?2003

            作為Microsoft公司官方正式發(fā)布的最新版本開發(fā)環(huán)境,其中有太多激動人心的功能。結(jié)合
            其最新的C++編譯器。對于機(jī)器配置比較好的開發(fā)人員來說,使用這個開發(fā)環(huán)境將能滿足其
            大部分的要求。這里不打算單獨(dú)說Visual?Studio?Whidbey,雖然Visual?Studio?.NET?200
            5?-?Whidbey社區(qū)預(yù)覽版已經(jīng)推出,但暫不是很穩(wěn)定,讀者可以親身去體驗(yàn)。

            Borland?C++?Builder?6

            這個并不是Borland的C++開發(fā)環(huán)境的最新版本。選擇它的原因是它不是用Java寫的IDE,速
            度比較快。它有一個很完善的GUI窗體設(shè)計器,和Delphi共用一個VCL。由于這些特點(diǎn),比
            較適合初學(xué)者上手。但是由于其GUI的中心位置,可能不利于對于C++語言的學(xué)習(xí)。而且其
            為了支持VCL這個Object?Pascal寫的庫也對C++進(jìn)行了一些私有的擴(kuò)充。使得人們有一個不
            得不接受的事實(shí):"Borland?C++?Builder?6的高手幾乎都是Delphi高手"。


            Borland?C++?Builder?X

            正如前文所述,雖然版本號上和前面那個IDE非常相象,但是其實(shí)它們是完全不同的兩個集
            成開發(fā)環(huán)境。C++Builder更多的是一個和Delphi同步的C++版本的開發(fā)環(huán)境,C++BuilderX
            則是完全從C++的角度思考得出的一個功能豐富的IDE。其最大的特點(diǎn)是跨平臺,跨編譯器
            ,多種Framework的集成,并且有一個WxWindows為基礎(chǔ)的GUI設(shè)計器。尤其是采用了純C++
            來重寫了整個Framework,摒棄了以前令人無奈的版本。對于C++的開發(fā)來說,從編譯器,到
            庫,到功能集成都是非常理想的。可以預(yù)見,Borland?C++?Builder?X?2.0很值得C++愛好
            者期待。唯一令人難堪之處是作為一個C++的開發(fā)工具,其IDE是用Java寫的,在配置不夠
            理想的機(jī)器上請慎重考慮再安裝。

            ?

            Emacs?+?GCC

            前面講的大部分是Windows環(huán)境下的集成開發(fā)環(huán)境。Linux上的開發(fā)者更傾向于使用Emacs來
            編輯C++的文件,用Makefile來命令GCC做編譯。雖然看上去比較松散,但是這些東西綜合
            起來還是一個開0發(fā)環(huán)境。如果你能夠嫻熟的使用這樣的環(huán)境寫程序,你的水平應(yīng)該足夠指
            導(dǎo)我們來寫這篇陋文了。

            ?

            Dev?C++

            GCC是一個很好的編譯器。在Windows上的C++編譯器一直和標(biāo)準(zhǔn)有著一段距離的時候,GCC
            就是一個讓W(xué)indows下開發(fā)者流口水的編譯器。Dev-C++就是能夠讓GCC跑在Windows下的工
            具,作為集成開發(fā)環(huán)境,還提供了同專業(yè)IDE相媲美的語法高亮,代碼提示,調(diào)試等功能。
            由于使用Delphi開發(fā),占用內(nèi)存少,速度很快,比較適合輕量級的學(xué)習(xí)和使用。

            ?

            Eclipse?+?CDT

            Eclipse可是近來大名鼎鼎的開發(fā)工具。最新一期的Jolt大獎就頒給了這個杰出的神物。說
            其神奇是因?yàn)椋旧硎怯肑ava寫的,但是擁有比一般Java寫的程序快得多的速度。而且
            因?yàn)槠浠诓寮M裝一切的原則,使得能夠有CDT這樣的插件把Eclipse變成一個C/C++的開
            發(fā)環(huán)境。如果你一直用Eclipse寫Java的程序,不妨用它體驗(yàn)一下C++開發(fā)的樂趣。

            ?

            工具

            C++的輔助工具繁多,我們分門別類的為大家作介紹:

            文檔類

            Doxygen

            參考站點(diǎn):http://www.doxygen.org/

            ????Doxygen是一種適合C風(fēng)格語言(如C++、C、IDL、Java甚至包括C#和PHP)的、開放源
            碼的、基于命令行的文檔產(chǎn)生器。

            C++2HTML

            參考站點(diǎn):http://www.bedaux.net/cpp2html/

            把C++代碼變成語法高亮的HTML

            CodeColorizer

            參考站點(diǎn):http://www.chami.com/colorizer/

            ????它能把好幾種語言的源代碼著色為HTML

            Doc-O-Matic

            參考站點(diǎn):http://www.doc-o-matic.com/

            Doc-O_Matic為你的C/C++,C++.net,Delphi/Pascal,?VB.NET,C#和Java程序或者組件產(chǎn)
            生準(zhǔn)確的文檔。Doc-O-Matic使用源代碼中的符號和注釋以及外部的文檔文件創(chuàng)建與流行的
            文檔樣式一致的文檔。

            DocVizor

            參考站點(diǎn):http://www.ucancode.net/Products/DocBuilder/Features.htm

            DocVizor滿足了面向?qū)ο筌浖_發(fā)者的基本要求——它讓我們能夠看到C++工程中的類層次
            結(jié)構(gòu)。DocVizor快速地產(chǎn)生完整可供打印的類層次結(jié)構(gòu)圖,包括從第三方庫中來的那些類
            ,除此之外DocVizor還能從類信息中產(chǎn)生HTML文件。

            SourcePublisher?C++

            參考站點(diǎn):http://www.scitools.com/sourcepublisher_c.html

            給源代碼產(chǎn)生提供快速直觀的HTML報表,包括代碼,類層次結(jié)構(gòu),調(diào)用和被調(diào)用樹,包含
            和被包含樹。支持多種操作系統(tǒng)。

            Understand

            參考站點(diǎn):http://www.scitools.com/ucpp.html

            分析任何規(guī)模的C或者C++工程,幫助我們更好的理解以及編寫文檔。

            代碼類

            CC-Rider

            參考站點(diǎn):http://www.cc-rider.com

            CC-Rider是用于C/C++程序強(qiáng)大的代碼可視化工具,通過交互式瀏覽、編輯及自動文件來促
            進(jìn)程序的維持和發(fā)展。

            CodeInspect

            參考站點(diǎn):http://www.yokasoft.com/

            一種新的C/C++代碼分析工具。它檢查我們的源代碼找出非標(biāo)準(zhǔn)的,可能的,以及普通的錯
            誤代碼。

            CodeWizard

            參考站點(diǎn):http://www.parasoft.com

            先進(jìn)的C/C++源代碼分析工具,使用超過500個編碼規(guī)范自動化地標(biāo)明危險的,但是編譯器
            不能檢查到的代碼結(jié)構(gòu)。

            C++?Validation?Test?Suites

            參考站點(diǎn):http://www.plumhall.com/suites.html

            一組用于測試編譯器和庫對于標(biāo)準(zhǔn)吻合程度的代碼庫。

            CppRefactory

            參考站點(diǎn):http://cpptool.sourceforge.net/

            ?????????CPPRefactory是一個使得開發(fā)者能夠重構(gòu)他們的C++代碼的程序。目的是使得C+
            +代碼的重構(gòu)能夠盡可能的有效率和簡單。

            Lzz

            參考站點(diǎn):http://www.lazycplusplus.com/

            ?????????Lzz是一個自動化許多C++編程中的體力活的工具。它能夠節(jié)省我們許多事件并且
            使得編碼更加有樂趣。給出一系列的聲明,Lzz會給我們創(chuàng)建頭文件和源文件。

            QA?C++?Generation?2000

            參考站點(diǎn):http://www.programmingresearch.com/solutions/qacpp.htm

            它關(guān)注面向?qū)ο蟮腃++源代碼,對有關(guān)于設(shè)計,效率,可靠性,可維護(hù)性的部分提出警告信
            息。

            s-mail?project?-?Java?to?C++DOL

            參考站點(diǎn):http://sadlocha.strefa.pl/s-mail/ja2dol.html

            把Java源代碼翻譯為相應(yīng)的C++源代碼的命令行工具。

            SNIP?from?Cleanscape?Software?International

            參考站點(diǎn):http://www.cleanscape.net/stdprod/snip/index.html

            一個填平編碼和設(shè)計之間溝壑的易于使用的C++開發(fā)工具,節(jié)省大量編輯和調(diào)試的事件,它
            還使得開發(fā)者能夠指定設(shè)計模式作為對象模型,自動從對象模型中產(chǎn)生C++的類。

            SourceStyler?C++

            參考站點(diǎn):http://www.ochresoftware.com/

            對C/C++源代碼提供完整的格式化和排版控制的工具。提供多于75個的格式化選項(xiàng)以及完全
            支持ANSI?C++。


            編譯類

            Compilercache

            參考站點(diǎn):http://www.erikyyy.de/compilercache/

            Compilercache是一個對你的C和C++編譯器的封裝腳本。每次我們進(jìn)行編譯,封裝腳本,把
            編譯的結(jié)果放入緩存,一旦編譯相同的東西,結(jié)果將從緩存中取出而不是再次編譯。

            Ccache

            參考站點(diǎn):http://ccache.samba.org/

            Ccache是一個編譯器緩存。它使用起來就像C/C++編譯器的緩存預(yù)處理器,編譯速度通常能
            提高普通編譯過程的5~10倍。

            Cmm?(C++?with?MultiMethods)

            參考站點(diǎn):http://www.op59.net/cmm/cmm-0.28/users.html

            ?????????這是一種C++語言的擴(kuò)展。讀入Cmm源代碼輸出C++的源代碼,功能是對C++語言添
            加了對multimethod的支持。

            The?Frost?Project

            參考站點(diǎn):http://frost.flewid.de/

            Forst使得你能夠在C++程序中像原生的C++特性一樣使用multimethod以及虛函數(shù)參數(shù)。它
            是一個編譯器的外殼。

            ?

            測試和調(diào)試類

            CPPUnit

            ?????????CppUnit?是個基于?LGPL?的開源項(xiàng)目,最初版本移植自?JUnit,是一個非常優(yōu)秀
            的開源測試框架。CppUnit?和?JUnit?一樣主要思想來源于極限編程。主要功能就是對單元
            測試進(jìn)行管理,并可進(jìn)行自動化測試。

            C++Test

            參考站點(diǎn):http://www.parasoft.com/

            ?????????C++?Test是一個單元測試工具,它自動化了C和C++類,函數(shù)或者組件的測試。


            Cantata++

            參考站點(diǎn):http://www.iplbath.com/products/tools/pt400.shtml

            設(shè)計的目的是為了滿足在合理的經(jīng)濟(jì)開銷下使用這個工具可以讓開發(fā)工程師開展單元測試
            和集成測試的需求.

            Purify

            參考站點(diǎn):http://www-900.ibm.com/cn/software/rational/products/purifyplus/inde
            x.shtml

            IBM?Rational?PurifyPlus是一套完整的運(yùn)行時分析工具,旨在提高應(yīng)用程序的可靠性和性
            能。PurifyPlus將內(nèi)存錯誤和泄漏檢測、應(yīng)用程序性能描述、代碼覆蓋分析等功能組合在
            一個單一、完整的工具包中。

            BoundsChecker

            BoundsChecker是一個C++運(yùn)行時錯誤檢測和調(diào)試工具。它通過在Visual?Studio內(nèi)自動化調(diào)
            試過程加速開發(fā)并且縮短上市的周期。BoundsChecker提供清楚,詳細(xì)的程序錯誤分析,許
            多是對C++獨(dú)有的并且在static,stack和heap內(nèi)存中檢測和診斷錯誤,以及發(fā)現(xiàn)內(nèi)存和資
            源的泄漏。

            Insure++

            參考站點(diǎn):http://www.parasoft.com/

            一個自動化的運(yùn)行時程序測試工具,檢查難以察覺的錯誤,如內(nèi)存覆蓋,內(nèi)存泄漏,內(nèi)存分
            配錯誤,變量初始化錯誤,變量定義沖突,指針錯誤,庫錯誤,邏輯錯誤和算法錯誤等。


            GlowCode

            參考站點(diǎn):http://www.glowcode.com/

            ?????????GlowCode包括內(nèi)存泄漏檢查,code?profiler,函數(shù)調(diào)用跟蹤等功能。給C++開發(fā)
            者提供完整的錯誤診斷,和運(yùn)行時性能分析工具包。

            Stack?Spy

            參考站點(diǎn):http://www.imperioustech.com/

            它能捕捉stack?corruption,?stack?over?run,?stack?overflow等有關(guān)棧的錯誤。


            引用:

            http://nickylemongxr.blogchina.com/index.php?&pageno=2?引

            posted on 2006-08-29 18:20 四海 閱讀(425) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产精品久久永久免费| 丁香色欲久久久久久综合网| 国产精品免费福利久久| 少妇高潮惨叫久久久久久| 久久只这里是精品66| 久久久久亚洲av综合波多野结衣| 久久久久亚洲av成人网人人软件 | 精品午夜久久福利大片| 久久久久国色AV免费看图片| 久久精品国产亚洲AV影院| 久久综合综合久久狠狠狠97色88| 久久精品亚洲AV久久久无码| 97久久精品国产精品青草| 久久无码AV中文出轨人妻| 99久久精品国产免看国产一区| 久久精品免费网站网| 久久人爽人人爽人人片AV | 久久人人爽人人澡人人高潮AV| 无码国内精品久久人妻蜜桃| 久久夜色精品国产www| 天天爽天天爽天天片a久久网| 久久AV高潮AV无码AV| 久久无码AV中文出轨人妻| 99久久99久久精品国产片| 久久久精品人妻一区二区三区四 | 99久久国产综合精品网成人影院| 久久人人爽人人爽人人片AV不 | 秋霞久久国产精品电影院| 亚洲∧v久久久无码精品| 一本色道久久综合| 天天综合久久一二三区| 精品久久久久久无码国产| 日韩va亚洲va欧美va久久| 狠狠色综合网站久久久久久久| 国产韩国精品一区二区三区久久| 亚洲香蕉网久久综合影视| 亚洲人成电影网站久久| 久久久国产打桩机| 亚洲国产精品无码久久98| 色综合久久久久久久久五月| 久久丫精品国产亚洲av不卡|