ss 版主
讓我安靜的想一會(huì)兒
UID 4 精華 1 積分 210 帖子 432 威望 210 WM幣 435 閱讀權(quán)限 100 注冊(cè) 2006-5-18 狀態(tài) 離線 | Dev-cpp 小型指南,原載于CSDN論壇
Dev-cpp是一個(gè)GCC在win32下的IDE程序,用Dephi 5編寫,只有2M 具有以下功能:
1.集成編譯環(huán)境,支持工程模板. 2.支持語法加高,自動(dòng)注釋,對(duì)中文的支持也不錯(cuò). 3.支持CVS集成 4.支持源碼分析,可以形成類樹圖. 5.支持?jǐn)U展包.
Dev-cpp官方發(fā)布有集成MinGW32 gcc編譯套件,最新支持GCC 3.3(2003-7-15) 也可以支持MinGW其它版本和Cygwin gcc的各個(gè)版本.不過需要手動(dòng)設(shè)置.
Dev-cpp支持多語言環(huán)境,中文版界面由我的好友nyra(nyra@sohu.com)維護(hù),如果 大家發(fā)現(xiàn)中文版有翻釋問題可以找她.如果有興趣翻譯幫助文件,也請(qǐng)聯(lián)系.
Dev-cpp有兩個(gè)常用版本,一是開發(fā)中的5.0beta,最新一版是4.9.8.0 另一個(gè)是4.01,是4.0的修正版(其中集成Gcc 2.9.5),前者功能較多,而后者較穩(wěn)定.
圖形化環(huán)境我就不多說了,和VC的用法類似,其實(shí)大家問題多集中于Gcc本身.
GCC, GCC和gcc不同的東西.前者是Gnu的編譯環(huán)境,包括gcc, g++, gcj等多種語言的編譯器 和as(匯編), ar(庫(kù)), ld(聯(lián)接器)等一系統(tǒng)編譯工具.gcc是GCC中C語言的編譯器,g++是 C++語言的編譯器.
GCC被移植到多種操作系統(tǒng)中,在Win32上最著名是MinGW和Cygwin兩個(gè)版本,MinGW的全稱是 Minial GCC for Windows,如題,它是Win32上的一個(gè)小型GCC,只包括最少的GCC組件<10M 而Cygwin就是一個(gè)Unix On Windows的大系統(tǒng),全部下載有300多兆,Unix下的大多數(shù)軟件 在Cygwin中都有移植版,包括X-windows.還有一個(gè)for Dos-32 的GCC,名叫Djgpp,與Mingw的 目標(biāo)類似,不同的是它是一個(gè)以MZ為目標(biāo)程序的可以在非Win32環(huán)境下運(yùn)行(例如FreeDOS) 它們都移值了GCC官方發(fā)布的最新版GCC.
下面集中力氣講GCC 3.2以及Mingw移植版.
GCC3.2(G++)號(hào)稱是對(duì)C++標(biāo)準(zhǔn)支持最好C++編譯器,真否不確.(因?yàn)閂C7.0也說它是)但是 有一點(diǎn)很明確,在沒做特殊配置的情況下,G++只支持標(biāo)準(zhǔn)C++語法,不再對(duì)早期的非標(biāo)準(zhǔn) C++語法進(jìn)行支持.所以VC下的C++程序很多不能運(yùn)行.BC++3.1等(很多教科書的目標(biāo)平臺(tái)) 的例程也不支持.所以,請(qǐng)?jiān)趩枮槭裁次业某绦蛟赬X編譯器中可以運(yùn)行,而到了Dev-cpp 中不能編譯之類問題前,首先請(qǐng)查看你的程序是不是真正的沒錯(cuò).
Dev-cpp對(duì)以cpp,cxx為擴(kuò)展名的文件默認(rèn)使用G++編譯,所以如果你的C語言程序請(qǐng)以c為擴(kuò)展 名,不然很可能出錯(cuò),請(qǐng)記住C和C++是兩種不能的語言,它們并非完全兼容. C++的標(biāo)準(zhǔn)是C++ 98,而語言的新標(biāo)準(zhǔn)是C99,但它們都要收費(fèi),推薦B.S.的C++ Programming Language做為C++的標(biāo)準(zhǔn)參考書.當(dāng)然如果以C++ 98標(biāo)準(zhǔn)為參考也不錯(cuò).
MinGW包括:gcc,g++,gdb和binary utils以及一個(gè)msys環(huán)境(單獨(dú)下載),前面幾項(xiàng)都是命令行 程序.MinGW除了標(biāo)準(zhǔn)c++庫(kù)和標(biāo)準(zhǔn)C庫(kù),還包括一個(gè)稱為w32api的Win32庫(kù)和openGL庫(kù).
目錄結(jié)構(gòu)如下如果你下載的Devcpp,它們?cè)贒ev-cpp/mingw32目錄下 /bin 可執(zhí)行程序(殼) /include 頭文件 /mingw /usr/ (真實(shí)的)可執(zhí)行程序 /lib 庫(kù)
Dev-cpp的默認(rèn)安裝中,相關(guān)的路徑都已經(jīng)設(shè)好.如沒有設(shè)好,很難編譯. 設(shè)置方法是在選項(xiàng)/編譯環(huán)境菜單中設(shè)置. 注意新的C++頭文件在/include/g++/3.2/下
下面回答一些問題:
1.多朋友問到在devc++下面做圖形,抱歉,devC++沒有g(shù)raphics.h文件的,好像不能作圖(具體解決辦法,期待高手補(bǔ)充.....) graphics.h是borland的Dos圖形庫(kù)的頭文件,win32下不支持,請(qǐng)使用win32的繪圖方法GDI或DirectDraw.
2. Dev C++ 是用dllwrap.exe來做DLL的(原話是這樣的,期待高手解釋....... 是的,dllwrap語法是: dllwrap 選項(xiàng) 目標(biāo)文件(即*.o) 常用選項(xiàng)有: --def <filename> DEF文件名 --dllname <名稱> DLL的名稱 --implib <導(dǎo)入lib名> 輸出DLL導(dǎo)入庫(kù)
3.關(guān)于庫(kù)的引用 GCC的庫(kù)名為libXXX.a其中XXX為庫(kù)名,編譯時(shí)只需要增加選項(xiàng)-lXXX即可。GCC的目標(biāo)文件與 VC使用的Coff以及Borland使用的OMF格式都不一樣,不能直接使用.需要重新編譯生成.a的庫(kù)。
GCC庫(kù)管理程序是ar,它的用法是:ar rcs 庫(kù)文見名.a 目標(biāo)文件.o 哦,有人說過了
4.關(guān)于調(diào)試及目標(biāo)文件的大小. Dev-cpp的調(diào)試一直不是很好用,原因是它不是直接調(diào)試,而是調(diào)用了GDB這個(gè)命令行程序, 所以有的地方打不到斷點(diǎn), 有時(shí)有的語句并不執(zhí)行,所以亂跳的感覺,實(shí)際上,只要仔細(xì) 觀察一下,它不執(zhí)行和不能打斷點(diǎn)都是很有理由的,不像VC在空行上也可以打斷點(diǎn). 目標(biāo)文件很大是因?yàn)闃?biāo)準(zhǔn)IO庫(kù),新的標(biāo)準(zhǔn)IO庫(kù)是全用模板生成的,所以靜態(tài)庫(kù)相當(dāng)大. 而GCC一直沒有把它做成動(dòng)態(tài)庫(kù),所以每次程序都要聯(lián)接到幾百K.另外,GCC模板的生成也 很笨(或者說為了附合標(biāo)準(zhǔn)),所以目標(biāo)程序很大.不過在mingw中有一個(gè)strip的程序. 可以為它減肥. 想要產(chǎn)生小的程序有幾個(gè)方法: 0.優(yōu)化程序!!!! 1.全部使用動(dòng)態(tài)庫(kù),包括C運(yùn)行庫(kù). 2.不要調(diào)試選項(xiàng). 3.使用面向程序大小的的優(yōu)化選項(xiàng).
至于環(huán)境,我覺得應(yīng)該是各有所好,并不一定非得要這樣那樣,同樣的文本編輯器就可以用好幾種的 MingW,NASM,Bochs,Binutils,Insight(GDB)的環(huán)境就足夠了
[ 本帖最后由 ss 于 2006-6-4 21:56 編輯 ]
| six思想 net is everything, net is nothing. | |