• <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記錄開發新知道

            用Eclipse+gcc編譯器開始你的旅程

             

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

             

            Eclipse是一個由IBM公司牽頭開發的一個自由軟件,后來IBM公司為了讓更多的公司積極參與進來而不至于讓它們因為這是一個由IBM主導的軟件而導致軟件開發者們拒之門外,Eclipse的身份則轉為由一個固定員工的組織所維護的非營利組織。它和所有的自由軟件一樣,被免費地提供給所有熱愛開源事業的人們,通過集體的智慧將它進行完善。

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

            多說無益,反正IDE的出現總是預示著編程門檻的降低,隨之而來帶來的就是在該平臺上的投入的人員越來越多而讓這個平臺能夠接受越來越多的人來參與。這對這個產業絕對是“生產力大獎”的。

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

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

            CDT的組件安裝,則是將安裝包解壓后,直接覆蓋到Eclipse的目錄下,重新啟動Eclipse即可。關于這點內容可能根據具體的版本會略有不同。當然最簡單的方式是下載C/C++版本的Eclipse

            編譯器(Complier)

            每一個科班出身的程序員對這個詞都耳熟能詳,每個人對這個詞都有自己的理解。但是真正接觸過的程序員又有多少呢?來一段軟件開發技術發展的簡史,傳說在很久以前,搞計算機的都是科學家,那時候大家剛剛從硬件電板上轉到鍵盤編碼的過程中來,用匯編+DOS似乎是一件很享受的事,但是那批科學家已經青春不在了。新來的年輕人又弄出了高級語言這種接近人類思維的語言,很快匯編就成為了專屬領域的內容,能用高級語言的地方,沒有人愿意讓匯編有用武之地。很快匯編也漸漸淡出視線。然后就是圖形化界面的出現,但這本身并沒有改變人們使用編譯器的方式。無非就是換成記事本去編寫代碼罷了。但是圖形化的出現促使了圖形化IDE的出現,人們發現編譯事實上又是遵循一定規律的集合,這部分可以很容易地通過一些編程上的限制或者通過代碼可以整理出人們期待的編譯方式,于是很快makefile一類的事也變成人們可以淡忘的事了。現在人們使用許多優秀的IDE,編譯不過只是按一下“編譯”或者輸入個快捷方式。那些難記的參數早已經忘到九霄云外了。由于編程的門檻在大大降低,所以是越來越多的程序員跟編譯器無一面之緣了。我們稱他們都是被慣壞的程序員,當然并不表示他們就怎么不好了,只是一個社會現象罷了。正如我們會用白米煮飯,并不需要我們去理解谷子的剝皮方式,也不需要去理解水稻的種植。我們只要懂得選擇哪種米能煮出更好吃的米飯就可以了。當然了,這一點在Windows平臺上顯得更為常見,因為Windows是最普及也是很優秀的一款圖形化的操作系統。但是在Unix上,計算機的發展還沒有那么文明。這里的大多數程序員從水稻種植到磨成白米,樣樣都得會,不然連HelloWorld都整不出來。而且每次要Say Hello就得重頭開始寫makefile,手動編譯等。雖然這看起來很酷,但是沒有多少意思。

            C/C++的編譯器很多,比較常見的優秀作品有MS C++,GCC(G++),Borland C++等,其中在Windows平臺上基本都用MS C++,而且MS C++也是截至我發稿時最接近ISO C++標準的編譯器(據說已經實現了標準的98%以上),但是在Linux平臺上,則多數是以GCC為主,其中GNU GCC Complier則是其中的佼佼者,但是它的標準化只達到了(94%以上,但是之前一直優于MS C++,即便如此,大部分的Linux C++開發人員仍然親睞GCC,因為它是OpenSource的)。

            經過簡單的一段介紹,我們應該對編譯器有了一點感覺了,可是這和我們這篇主題有啥關系?我只是一個希望點一下“編譯”按鈕的讀者,我并不希望makefile然后才編譯。這一切似乎和我沒啥關系。不過我告訴你,就了Eclipse+CDT,你仍然做不到這點。因為就算是針對C/C++的開發,我們仍然要經常面臨使用不同的編譯器進行編譯的情形。甚至有些語法特性和標準C++并無任何關聯,而僅與不同的編譯器有關。又或者有些源代碼在不同的編譯器編譯下會產生微妙不同的目標代碼,而這一些則需要我們更好地理解。就算我們期望有一種通用或者說是常用的方式來解決這個問題,我們仍然需要手動為自己配置一個簡單而通用的編譯器,盡管你從不了解編譯器方面的差異,你起碼也得有一個編譯器。那么好吧,既然Eclipse的安裝如此不盡人意,那我就只能自己動手了。

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

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

            設置環境變量步驟:

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

            image

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

            好吧,那么就開始我們的第一個C/C++代碼的測試,以驗證我們的成果。

            一個HelloWorld的基本步驟:

            1、打開Eclipse

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

            image

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

            image

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

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

            image

            5、因為我們選擇了Hello World項目,所以我們還有一個基本設置的頁面,可以輸入一些個性化的信息。

            image

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

            image

            相關路徑:C/C++ Build -> Settings -> Binary Parsers

            image

            點擊“OK”或者“Finish”即可完成。

            7、編寫個代碼試試(其實系統已經為我們在src文件夾下生成了一個)

            讓我們寫一個簡單的代碼試試

            代碼如下:
            #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相關的選項,選擇Build Project后,等待編譯結束,然后點擊“Run”(綠色圖標),在最下方的選項卡中找到Console,即可看到輸出結果。

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

            評論

            # re: 用Eclipse+gcc編譯器開始你的旅程[未登錄] 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.  回復  更多評論   

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

            貌似我就是用的這個開發環境,學習時就用MinGW Developer Studio。  回復  更多評論   

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

            相比這個,我更喜歡code::blocks,越用越喜歡。  回復  更多評論   

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

            VS好像更漂亮一點。。。  回復  更多評論   

            # re: 用Eclipse+gcc編譯器開始你的旅程 2008-10-01 10:58 空明流轉

            我用codeblocks。簡潔好用。  回復  更多評論   

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

            怎么在linux下 用Eclipse+GCC 來編程??  回復  更多評論   

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

            @sean
            這是在Windows下~  回復  更多評論   

            # re: 用Eclipse+gcc編譯器開始你的旅程[未登錄] 2008-10-10 10:08 Xshl5

            工具畢竟只是輔助,往往在為我們提供方便的同時丟掉了原有的靈活;作為一個程序員,我們有權利和義務了解從源代碼到執行程序過程中,編譯器為我們做了什么,只有深入了解計算機系統,才能寫出高效的代碼。所以從學習技術的角度看,我們不要太過于依賴IDE;當然從商業開發的角度看,IDE能大大提高我們的開發效率。即使是VS的開發者,他們在開發的過程中也不會使用什么IDE。。  回復  更多評論   

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

            @Xshl5
            你說的很對,不過寫這篇文章的目的,也就是減輕大家在安裝它的時候出現的麻煩,如果被這兒卡住了,或許很多人就完全失去興趣了。人們總是不愿意見到異常和錯誤,這會讓他們不舒服。
            至于樓主說的VS的開發者,我們也不應該蠻目跟風,究竟他們怎么開發,都已經是以訛傳訛的事,畢竟咱連小系統都開發地頭暈腦脹,就沒有必要一開始就跟著大牛,這同樣會降低開發者的興趣。
            入門的門檻也可能會影響這個行業的規模。沒有微軟簡便的開發模式,現在計算機的普及率肯定還是慘不忍睹,而Linux那些高深理論總是在人們循序漸進過后慢慢回味才會覺得耐人尋味。但我們決不能忽視入門者的功勞,沒有他們我們甚至可能和計算機無緣,也許十年后我們才能感受到計算機的好處。也許這十年我們還在重復著過去十年的工作。也許一切都不是如此發達……這里我們也需要感謝集成和快速。他們功不可沒。  回復  更多評論   

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

            @feosun
            如果版權收到嚴格保護,那么考慮花費幾百美金來買正版Visual Studio 2008軟件,我相信這個方案的價值會提升很多。

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

              回復  更多評論   

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

            我也覺得codeblocks好用。如果在linux上,vim+plugins會是相當好的選擇,anjuta也不錯。
            當然,如果在win上開發app或者做prototype,還是vs比較好,畢竟是RAD工具嘛。
            如果不做RAD,自己編寫makefile和腳本來管理src樹、進行開發能極大提高效率  回復  更多評論   

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

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

            現在的Mingw安裝和你的截圖已經有些出入了,可以在安裝Mingw的時候選擇同時安裝MSYS了。

            不過目前我用起來還是有點小問題,點run運行C代碼的時候,會提示
            Launch failde. Binary not found.
            后來找到辦法在Eclipse中的project中建立target解決了,雖然麻煩了點,但至少可以正常編譯。

            還是要謝謝樓主,之前用Eclipse沒成功,放棄了很長時間了。  回復  更多評論   

            特殊功能
             
            精品久久久久成人码免费动漫| 久久精品草草草| 亚洲国产精品无码久久九九| 久久久久香蕉视频| 97久久婷婷五月综合色d啪蜜芽| 久久久免费精品re6| 精品久久久久久无码免费| 欧美久久久久久| 一本大道久久a久久精品综合 | 亚洲人成伊人成综合网久久久| 久久99精品久久久久婷婷| 久久久久亚洲AV成人网人人软件| 精品久久久无码人妻中文字幕| 26uuu久久五月天| 久久精品国产亚洲AV无码娇色| 久久九九免费高清视频| 九九99精品久久久久久| 久久久久久精品无码人妻| 亚洲午夜久久久精品影院| 久久精品无码一区二区无码| 理论片午午伦夜理片久久 | 久久精品国产亚洲av麻豆图片| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 精品国产青草久久久久福利| 国产亚洲精久久久久久无码AV| 99久久婷婷国产综合亚洲| 中文字幕乱码久久午夜| 久久毛片一区二区| 久久无码精品一区二区三区| 国产精品热久久无码av| 99久久精品免费国产大片| 色偷偷888欧美精品久久久| 国产精品久久久久jk制服| 浪潮AV色综合久久天堂| 亚洲av日韩精品久久久久久a| 97精品伊人久久大香线蕉| 无码任你躁久久久久久老妇| 人人狠狠综合久久亚洲高清| 无码乱码观看精品久久| 伊人久久大香线蕉综合Av| 欧美va久久久噜噜噜久久|