• <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>

            MyMSDN

            MyMSDN記錄開(kāi)發(fā)新知道

            用Eclipse+gcc編譯器開(kāi)始你的旅程

             

            c++
            Eclipse(http://www.eclipse.org/

             

            Eclipse是一個(gè)由IBM公司牽頭開(kāi)發(fā)的一個(gè)自由軟件,后來(lái)IBM公司為了讓更多的公司積極參與進(jìn)來(lái)而不至于讓它們因?yàn)檫@是一個(gè)由IBM主導(dǎo)的軟件而導(dǎo)致軟件開(kāi)發(fā)者們拒之門(mén)外,Eclipse的身份則轉(zhuǎn)為由一個(gè)固定員工的組織所維護(hù)的非營(yíng)利組織。它和所有的自由軟件一樣,被免費(fèi)地提供給所有熱愛(ài)開(kāi)源事業(yè)的人們,通過(guò)集體的智慧將它進(jìn)行完善。

            Eclipse是一款跨平臺(tái)的IDE,它既不是編譯器,也不是簡(jiǎn)單的編輯器,它提供了一個(gè)開(kāi)放的平臺(tái)用于為各種各樣的編譯器,開(kāi)源或者不開(kāi)源的,提供一個(gè)能夠共同操作的平臺(tái)。由于它是一款基于Java虛擬機(jī)的應(yīng)用軟件,因此它同時(shí)也是一款跨平臺(tái)的IDE。跨平臺(tái)的特性讓它的存在有了更有征服力的理由。眾所周知,Linux是開(kāi)源社區(qū)中的一顆璀璨奪目的明珠,以Linux為核心的開(kāi)源軟件組織也是數(shù)不勝數(shù),無(wú)數(shù)人為之奮斗傾盡心血。但是作為開(kāi)發(fā)人員,Windows平臺(tái)上的Visual Studio一貫的平易近人(不是指價(jià)格上)讓所有的程序員所稱贊。就算是要搞Borland Delphi也有一款優(yōu)秀的IDE在實(shí)時(shí)待命。但是在Linux上有啥?對(duì)于骨灰級(jí)的程序員,拿個(gè)Emacs甚至一個(gè)記事本就可以將編程進(jìn)行到底。他們追求的無(wú)非就是換行和顯色等漂亮點(diǎn)的效果,對(duì)于項(xiàng)目級(jí)的維護(hù)和便利并沒(méi)有過(guò)高的要求,也許是一種習(xí)慣,也許是一種妥協(xié)。但是這一切因?yàn)镋clipse的出現(xiàn)而大大變樣了,程序員從紛繁的makefile中解脫出來(lái)專心于邏輯代碼的編寫(xiě),很多自動(dòng)化的組件出現(xiàn)更增加了程序的健壯性。雖然舊式的編碼方式顯得更專業(yè),但還是一定程度上束縛了生產(chǎn)力的發(fā)展。

            多說(shuō)無(wú)益,反正IDE的出現(xiàn)總是預(yù)示著編程門(mén)檻的降低,隨之而來(lái)帶來(lái)的就是在該平臺(tái)上的投入的人員越來(lái)越多而讓這個(gè)平臺(tái)能夠接受越來(lái)越多的人來(lái)參與。這對(duì)這個(gè)產(chǎn)業(yè)絕對(duì)是“生產(chǎn)力大獎(jiǎng)”的。

            CDT(http://www.eclipse.org/cdt/

            CDT英文全稱是C/C++ Developer Tools,CDT是為Eclipse平臺(tái)提供集成開(kāi)發(fā)環(huán)境的一個(gè)項(xiàng)目。我們知道將Eclipse+CDT就可以用于開(kāi)發(fā)C++了,現(xiàn)在又說(shuō)這CDT也是個(gè)IDE,這是怎么回事呢?事實(shí)是這樣的,因?yàn)镋clipse是個(gè)開(kāi)放的平臺(tái),所以它希望所有的開(kāi)發(fā)者都能夠參與進(jìn)來(lái)。但是現(xiàn)在市面上流行的語(yǔ)言種類太多了,多得有點(diǎn)數(shù)不過(guò)來(lái),有些甚至只有少數(shù)幾個(gè)人自己會(huì)用(比如中文編程語(yǔ)言吧)。所以Eclipse公開(kāi)了自己的部分接口讓這些語(yǔ)言能夠定義帶有自己特征的部分功能。可以這么理解,Eclipse定義了IDE的共性部分,而類似CDT這樣的則定義了IDE的個(gè)性部分。所以它是專門(mén)針對(duì)C/C++IDE的個(gè)性化組件。有了它,用Eclipse寫(xiě)C/C++代碼才顯得更有價(jià)值。

            CDT的組件安裝,則是將安裝包解壓后,直接覆蓋到Eclipse的目錄下,重新啟動(dòng)Eclipse即可。關(guān)于這點(diǎn)內(nèi)容可能根據(jù)具體的版本會(huì)略有不同。當(dāng)然最簡(jiǎn)單的方式是下載C/C++版本的Eclipse

            編譯器(Complier)

            每一個(gè)科班出身的程序員對(duì)這個(gè)詞都耳熟能詳,每個(gè)人對(duì)這個(gè)詞都有自己的理解。但是真正接觸過(guò)的程序員又有多少呢?來(lái)一段軟件開(kāi)發(fā)技術(shù)發(fā)展的簡(jiǎn)史,傳說(shuō)在很久以前,搞計(jì)算機(jī)的都是科學(xué)家,那時(shí)候大家剛剛從硬件電板上轉(zhuǎn)到鍵盤(pán)編碼的過(guò)程中來(lái),用匯編+DOS似乎是一件很享受的事,但是那批科學(xué)家已經(jīng)青春不在了。新來(lái)的年輕人又弄出了高級(jí)語(yǔ)言這種接近人類思維的語(yǔ)言,很快匯編就成為了專屬領(lǐng)域的內(nèi)容,能用高級(jí)語(yǔ)言的地方,沒(méi)有人愿意讓匯編有用武之地。很快匯編也漸漸淡出視線。然后就是圖形化界面的出現(xiàn),但這本身并沒(méi)有改變?nèi)藗兪褂镁幾g器的方式。無(wú)非就是換成記事本去編寫(xiě)代碼罷了。但是圖形化的出現(xiàn)促使了圖形化IDE的出現(xiàn),人們發(fā)現(xiàn)編譯事實(shí)上又是遵循一定規(guī)律的集合,這部分可以很容易地通過(guò)一些編程上的限制或者通過(guò)代碼可以整理出人們期待的編譯方式,于是很快makefile一類的事也變成人們可以淡忘的事了。現(xiàn)在人們使用許多優(yōu)秀的IDE,編譯不過(guò)只是按一下“編譯”或者輸入個(gè)快捷方式。那些難記的參數(shù)早已經(jīng)忘到九霄云外了。由于編程的門(mén)檻在大大降低,所以是越來(lái)越多的程序員跟編譯器無(wú)一面之緣了。我們稱他們都是被慣壞的程序員,當(dāng)然并不表示他們就怎么不好了,只是一個(gè)社會(huì)現(xiàn)象罷了。正如我們會(huì)用白米煮飯,并不需要我們?nèi)ダ斫夤茸拥膭兤し绞剑膊恍枰ダ斫馑镜姆N植。我們只要懂得選擇哪種米能煮出更好吃的米飯就可以了。當(dāng)然了,這一點(diǎn)在Windows平臺(tái)上顯得更為常見(jiàn),因?yàn)閃indows是最普及也是很優(yōu)秀的一款圖形化的操作系統(tǒng)。但是在Unix上,計(jì)算機(jī)的發(fā)展還沒(méi)有那么文明。這里的大多數(shù)程序員從水稻種植到磨成白米,樣樣都得會(huì),不然連HelloWorld都整不出來(lái)。而且每次要Say Hello就得重頭開(kāi)始寫(xiě)makefile,手動(dòng)編譯等。雖然這看起來(lái)很酷,但是沒(méi)有多少意思。

            C/C++的編譯器很多,比較常見(jiàn)的優(yōu)秀作品有MS C++,GCC(G++),Borland C++等,其中在Windows平臺(tái)上基本都用MS C++,而且MS C++也是截至我發(fā)稿時(shí)最接近ISO C++標(biāo)準(zhǔn)的編譯器(據(jù)說(shuō)已經(jīng)實(shí)現(xiàn)了標(biāo)準(zhǔn)的98%以上),但是在Linux平臺(tái)上,則多數(shù)是以GCC為主,其中GNU GCC Complier則是其中的佼佼者,但是它的標(biāo)準(zhǔn)化只達(dá)到了(94%以上,但是之前一直優(yōu)于MS C++,即便如此,大部分的Linux C++開(kāi)發(fā)人員仍然親睞GCC,因?yàn)樗荗penSource的)。

            經(jīng)過(guò)簡(jiǎn)單的一段介紹,我們應(yīng)該對(duì)編譯器有了一點(diǎn)感覺(jué)了,可是這和我們這篇主題有啥關(guān)系?我只是一個(gè)希望點(diǎn)一下“編譯”按鈕的讀者,我并不希望makefile然后才編譯。這一切似乎和我沒(méi)啥關(guān)系。不過(guò)我告訴你,就了Eclipse+CDT,你仍然做不到這點(diǎn)。因?yàn)榫退闶轻槍?duì)C/C++的開(kāi)發(fā),我們?nèi)匀灰?jīng)常面臨使用不同的編譯器進(jìn)行編譯的情形。甚至有些語(yǔ)法特性和標(biāo)準(zhǔn)C++并無(wú)任何關(guān)聯(lián),而僅與不同的編譯器有關(guān)。又或者有些源代碼在不同的編譯器編譯下會(huì)產(chǎn)生微妙不同的目標(biāo)代碼,而這一些則需要我們更好地理解。就算我們期望有一種通用或者說(shuō)是常用的方式來(lái)解決這個(gè)問(wèn)題,我們?nèi)匀恍枰謩?dòng)為自己配置一個(gè)簡(jiǎn)單而通用的編譯器,盡管你從不了解編譯器方面的差異,你起碼也得有一個(gè)編譯器。那么好吧,既然Eclipse的安裝如此不盡人意,那我就只能自己動(dòng)手了。

            如果您看過(guò)我的上兩篇文章,您或許已經(jīng)跟著做了,如果沒(méi)有,那么重復(fù)一遍。(《如何安裝MinGW 》、《如何安裝Minimal SYStem(MSYS)》)

            如果您照上面那么做了,那么您的機(jī)器上已經(jīng)有了MinGW和MSYS了,換言之,您已經(jīng)有了gcc、make以及其它一些必要文件了。下面您需要做的只要設(shè)定一下環(huán)境變量即可。

            設(shè)置環(huán)境變量步驟:

            右鍵“我的電腦”(沒(méi)有“我的電腦”的用戶在桌面右鍵“屬性”,然后再“桌面”選項(xiàng)卡中自定義中將其選出,或者直接在Windows Explorer地址欄中輸入“我的電腦”,回車即可),選擇“屬性”,選擇“高級(jí)”選項(xiàng)卡,最下方有“環(huán)境變量”(或Alt+N打開(kāi)),在下面窗格“系統(tǒng)變量”中,選擇變量“Path”,雙擊后出現(xiàn)“編輯系統(tǒng)變量”的選項(xiàng)。將我們MinGW的bin目錄全局路徑復(fù)制進(jìn)去(一般可以復(fù)制在“變量值”的最前面,或者緊跟在任何一個(gè)“;”(分號(hào),不包括引號(hào))后),點(diǎn)擊確定,即可。

            image

            如果我現(xiàn)在告訴您可以編輯C/C++代碼了,您相信么?

            好吧,那么就開(kāi)始我們的第一個(gè)C/C++代碼的測(cè)試,以驗(yàn)證我們的成果。

            一個(gè)HelloWorld的基本步驟:

            1、打開(kāi)Eclipse

            2、選擇一個(gè)“工作空間”(workspace)

            image

            3、選擇一個(gè)“工程”(Project)

            image

            4、在向?qū)е性O(shè)置項(xiàng)目名稱。這里我們將項(xiàng)目名稱設(shè)定為HelloEclipse,在存放路徑上,我們需要有所講究,如果我們勾選Use default location的話,我們的location位置將是步驟1中設(shè)置的路徑,我們通常需要設(shè)立子文件夾,以避免工程數(shù)量的增加而導(dǎo)致不同工程文件的交錯(cuò)。深刻理解這一點(diǎn),把兩種方案都試一下就可以了。

            在Project types(項(xiàng)目類型)中,我們可以選擇一個(gè)Hello World ANSI C Project,在Toolchain中選擇MinGW GCC,這就是我們本機(jī)所擁有的編譯器了。

            image

            5、因?yàn)槲覀冞x擇了Hello World項(xiàng)目,所以我們還有一個(gè)基本設(shè)置的頁(yè)面,可以輸入一些個(gè)性化的信息。

            image

            6、如果您是在Windows上使用,則可以選擇高級(jí)設(shè)置(Advanced settings),選擇二進(jìn)制轉(zhuǎn)換器的類型(如圖),當(dāng)然,默認(rèn)情況下是選好的因此,不用顧及該部分內(nèi)容也依然會(huì)成功,但如果您遇到諸如此類的問(wèn)題,則可以看看這里是否正確設(shè)置了。

            image

            相關(guān)路徑:C/C++ Build -> Settings -> Binary Parsers

            image

            點(diǎn)擊“OK”或者“Finish”即可完成。

            7、編寫(xiě)個(gè)代碼試試(其實(shí)系統(tǒng)已經(jīng)為我們?cè)趕rc文件夾下生成了一個(gè))

            讓我們寫(xiě)一個(gè)簡(jiǎn)單的代碼試試

            代碼如下:
            #include <stdio.h>
            void myputs(char * s);
            int main()
            {
            char * s = "HelloEclipse!";
            myputs(s);
            return 0;
            }
            void myputs(char * s)
            {
            while(*s)
            {
            printf("%c",*s++);
            }
            return;
            }
            image
            另外在菜單Project中有很多Build相關(guān)的選項(xiàng),選擇Build Project后,等待編譯結(jié)束,然后點(diǎn)擊“Run”(綠色圖標(biāo)),在最下方的選項(xiàng)卡中找到Console,即可看到輸出結(jié)果。

            posted on 2008-10-01 03:08 volnet 閱讀(12515) 評(píng)論(12)  編輯 收藏 引用

            評(píng)論

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程[未登錄](méi) 2008-08-01 22:47 feosun

            On windows platform,VS is the most powerful and professional IDE, but in linux ur solution is a good choice.  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-08-02 09:43 Strive

            貌似我就是用的這個(gè)開(kāi)發(fā)環(huán)境,學(xué)習(xí)時(shí)就用MinGW Developer Studio。  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-08-02 10:35 yxxyun

            相比這個(gè),我更喜歡code::blocks,越用越喜歡。  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-08-02 12:12 Bill Hsu

            VS好像更漂亮一點(diǎn)。。。  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-10-01 10:58 空明流轉(zhuǎn)

            我用codeblocks。簡(jiǎn)潔好用。  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-10-06 16:10 sean

            怎么在linux下 用Eclipse+GCC 來(lái)編程??  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-10-06 19:29 volnet

            @sean
            這是在Windows下~  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程[未登錄](méi) 2008-10-10 10:08 Xshl5

            工具畢竟只是輔助,往往在為我們提供方便的同時(shí)丟掉了原有的靈活;作為一個(gè)程序員,我們有權(quán)利和義務(wù)了解從源代碼到執(zhí)行程序過(guò)程中,編譯器為我們做了什么,只有深入了解計(jì)算機(jī)系統(tǒng),才能寫(xiě)出高效的代碼。所以從學(xué)習(xí)技術(shù)的角度看,我們不要太過(guò)于依賴IDE;當(dāng)然從商業(yè)開(kāi)發(fā)的角度看,IDE能大大提高我們的開(kāi)發(fā)效率。即使是VS的開(kāi)發(fā)者,他們?cè)陂_(kāi)發(fā)的過(guò)程中也不會(huì)使用什么IDE。。  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-10-11 00:04 volnet

            @Xshl5
            你說(shuō)的很對(duì),不過(guò)寫(xiě)這篇文章的目的,也就是減輕大家在安裝它的時(shí)候出現(xiàn)的麻煩,如果被這兒卡住了,或許很多人就完全失去興趣了。人們總是不愿意見(jiàn)到異常和錯(cuò)誤,這會(huì)讓他們不舒服。
            至于樓主說(shuō)的VS的開(kāi)發(fā)者,我們也不應(yīng)該蠻目跟風(fēng),究竟他們?cè)趺撮_(kāi)發(fā),都已經(jīng)是以訛傳訛的事,畢竟咱連小系統(tǒng)都開(kāi)發(fā)地頭暈?zāi)X脹,就沒(méi)有必要一開(kāi)始就跟著大牛,這同樣會(huì)降低開(kāi)發(fā)者的興趣。
            入門(mén)的門(mén)檻也可能會(huì)影響這個(gè)行業(yè)的規(guī)模。沒(méi)有微軟簡(jiǎn)便的開(kāi)發(fā)模式,現(xiàn)在計(jì)算機(jī)的普及率肯定還是慘不忍睹,而Linux那些高深理論總是在人們循序漸進(jìn)過(guò)后慢慢回味才會(huì)覺(jué)得耐人尋味。但我們決不能忽視入門(mén)者的功勞,沒(méi)有他們我們甚至可能和計(jì)算機(jī)無(wú)緣,也許十年后我們才能感受到計(jì)算機(jī)的好處。也許這十年我們還在重復(fù)著過(guò)去十年的工作。也許一切都不是如此發(fā)達(dá)……這里我們也需要感謝集成和快速。他們功不可沒(méi)。  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程 2008-10-12 20:28 Wick

            @feosun
            如果版權(quán)收到嚴(yán)格保護(hù),那么考慮花費(fèi)幾百美金來(lái)買(mǎi)正版Visual Studio 2008軟件,我相信這個(gè)方案的價(jià)值會(huì)提升很多。

            @Xshl5
            樓主這篇文章不是在討論IDE的意義,而是在向各位推薦另一個(gè)C++平臺(tái)。

              回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程[未登錄](méi) 2008-10-17 11:03 raof01

            我也覺(jué)得codeblocks好用。如果在linux上,vim+plugins會(huì)是相當(dāng)好的選擇,anjuta也不錯(cuò)。
            當(dāng)然,如果在win上開(kāi)發(fā)app或者做prototype,還是vs比較好,畢竟是RAD工具嘛。
            如果不做RAD,自己編寫(xiě)makefile和腳本來(lái)管理src樹(shù)、進(jìn)行開(kāi)發(fā)能極大提高效率  回復(fù)  更多評(píng)論   

            # re: 用Eclipse+gcc編譯器開(kāi)始你的旅程[未登錄](méi) 2012-09-14 22:17 cc

            非常感謝,隨著這是樓主2008年的帖子了,但還是給了我很大的幫助,真的非常感謝想您這樣熱心的人。
            我現(xiàn)在用的是筆記本自帶的win7家庭普通版,64位。
            用的是C/C++ Eclipse,Build id: 20120614-1722
            Mingw的版本是mingw-get-inst-20120426

            現(xiàn)在的Mingw安裝和你的截圖已經(jīng)有些出入了,可以在安裝Mingw的時(shí)候選擇同時(shí)安裝MSYS了。

            不過(guò)目前我用起來(lái)還是有點(diǎn)小問(wèn)題,點(diǎn)run運(yùn)行C代碼的時(shí)候,會(huì)提示
            Launch failde. Binary not found.
            后來(lái)找到辦法在Eclipse中的project中建立target解決了,雖然麻煩了點(diǎn),但至少可以正常編譯。

            還是要謝謝樓主,之前用Eclipse沒(méi)成功,放棄了很長(zhǎng)時(shí)間了。  回復(fù)  更多評(píng)論   


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


            特殊功能
             
            国产午夜精品理论片久久| 伊人久久大香线蕉av不卡| 亚洲AV无码久久精品成人| 日本精品久久久久久久久免费| 国产精品99久久不卡| A狠狠久久蜜臀婷色中文网| 久久不见久久见免费视频7| 久久99国产综合精品女同| 久久99精品久久久久久久不卡 | 亚洲国产综合久久天堂| 久久国产热这里只有精品| 精品无码久久久久久久动漫| 久久精品国产欧美日韩| 伊人久久亚洲综合影院| 亚洲国产另类久久久精品小说| 少妇精品久久久一区二区三区| 色欲综合久久躁天天躁蜜桃| 久久99精品久久久久久久不卡| 99久久精品国产高清一区二区| 99精品久久久久久久婷婷| 精品无码久久久久久国产| 亚洲欧美一区二区三区久久| 97精品依人久久久大香线蕉97| 日本强好片久久久久久AAA| 热久久这里只有精品| 香蕉久久夜色精品国产尤物| 婷婷久久久亚洲欧洲日产国码AV | 久久91精品久久91综合| 精品久久久久久国产牛牛app | 久久人人爽人人爽人人片AV东京热| 久久av高潮av无码av喷吹| 亚洲αv久久久噜噜噜噜噜| 精品免费tv久久久久久久| 一本色道久久综合| 久久久久免费精品国产| 人妻无码精品久久亚瑟影视| 97久久天天综合色天天综合色hd | 狠狠精品干练久久久无码中文字幕 | 午夜天堂精品久久久久| 久久久久久久综合日本| 丰满少妇高潮惨叫久久久|