[作者] chinesedragon [头衔]
[经验]
525 [等级]
平民 [发帖]
97 [回帖]
95 [登陆]
49
[发表时间]
2005/12/3 13:30:30 [楼主]
|
|
标题:
[转帖]Dev-cpp 小型指南,原载于CSDN论坛
|
Dev-cpp 小型指南,原载于CSDN论坛 Dev-cpp是一个GCC在win32下的IDE程序,用Dephi 5编写,只有2M 具有以下功能: 1.集成编译环境,支持工程模板. 2.支持语法加高,自动注释,对中文的支持也不错. 3.支持CVS集成 4.支持源码分析,可以形成类树图. 5.支持扩展包. Dev-cpp官方发布有集成MinGW32 gcc编译套件,最新支持GCC 3.3(2003-7-15) 也可以支持MinGW其它版本和Cygwin gcc的各个版本.不过需要手动设置. Dev-cpp支持多语言环境,中文版界面由我的好友nyra(nyra@sohu.com)维护,如果 大家发现中文版有翻释问题可以找她.如果有兴趣翻译帮助文件,也请联系. Dev-cpp有两个常用版本,一是开发中的5.0beta,最新一版是4.9.8.0 另一个是4.01,是4.0的修正版(其中集成Gcc 2.9.5),前者功能较多,而后者较稳定. 图形化环境我就不多说了,和VC的用法类似,其实大家问题多集中于Gcc本身. GCC, GCC和gcc不同的东西.前者是Gnu的编译环境,包括gcc, g++, gcj等多种语言的编译器 和as(汇编), ar(库), ld(联接器)等一系统编译工具.gcc是GCC中C语言的编译器,g++是 C++语言的编译器. GCC被移植到多种操作系统中,在Win32上最著名是MinGW和Cygwin两个版本,MinGW的全称是 Minial GCC for Windows,如题,它是Win32上的一个小型GCC,只包括最少的GCC组件<10M 而Cygwin就是一个Unix On Windows的大系统,全部下载有300多兆,Unix下的大多数软件 在Cygwin中都有移植版,包括X-windows.还有一个for Dos-32 的GCC,名叫Djgpp,与Mingw的 目标类似,不同的是它是一个以MZ为目标程序的可以在非Win32环境下运行(例如FreeDOS) 它们都移值了GCC官方发布的最新版GCC. 下面集中力气讲GCC 3.2以及Mingw移植版. GCC3.2(G++)号称是对C++标准支持最好C++编译器,真否不确.(因为VC7.0也说它是)但是 有一点很明确,在没做特殊配置的情况下,G++只支持标准C++语法,不再对早期的非标准 C++语法进行支持.所以VC下的C++程序很多不能运行.BC++3.1等(很多教科书的目标平台) 的例程也不支持.所以,请在问为什么我的程序在XX编译器中可以运行,而到了Dev-cpp 中不能编译之类问题前,首先请查看你的程序是不是真正的没错. Dev-cpp对以cpp,cxx为扩展名的文件默认使用G++编译,所以如果你的C语言程序请以c为扩展 名,不然很可能出错,请记住C和C++是两种不能的语言,它们并非完全兼容. C++的标准是C++ 98,而语言的新标准是C99,但它们都要收费,推荐B.S.的C++ Programming Language做为C++的标准参考书.当然如果以C++ 98标准为参考也不错. MinGW包括:gcc,g++,gdb和binary utils以及一个msys环境(单独下载),前面几项都是命令行 程序.MinGW除了标准c++库和标准C库,还包括一个称为w32api的Win32库和openGL库. 目录结构如下:(如果你下载的Devcpp,它们在Dev-cpp/mingw32目录下 /bin 可执行程序(壳) /include 头文件 /mingw /usr/ (真实的)可执行程序 /lib 库 Dev-cpp的默认安装中,相关的路径都已经设好.如没有设好,很难编译. 设置方法是在选项/编译环境菜单中设置. 注意新的C++头文件在/include/g++/3.2/下 下面回答一些问题: 1.多朋友问到在devc++下面做图形,抱歉,devC++没有graphics.h文件的,好像不能作图(具体解决办法,期待高手补充.....) graphics.h是borland的Dos图形库的头文件,win32下不支持,请使用win32的绘图方法GDI或DirectDraw. 2. Dev C++ 是用dllwrap.exe来做DLL的(原话是这样的,期待高手解释....... 是的,dllwrap语法是: dllwrap 选项 目标文件(即*.o) 常用选项有: --def <filename> DEF文件名 --dllname <名称> DLL的名称 --implib <导入lib名> 输出DLL导入库 3.关于库的引用 GCC的库名为libXXX.a其中XXX为库名,编译时只需要增加选项-lXXX即可。GCC的目标文件与 VC使用的Coff以及Borland使用的OMF格式都不一样,不能直接使用.需要重新编译生成.a的库。 GCC库管理程序是ar,它的用法是:ar rcs 库文见名.a 目标文件.o 哦,有人说过了:) 4.关于调试及目标文件的大小. Dev-cpp的调试一直不是很好用,原因是它不是直接调试,而是调用了GDB这个命令行程序, 所以有的地方打不到断点, 有时有的语句并不执行,所以乱跳的感觉,实际上,只要仔细 观察一下,它不执行和不能打断点都是很有理由的,不像VC在空行上也可以打断点. 目标文件很大是因为标准IO库,新的标准IO库是全用模板生成的,所以静态库相当大. 而GCC一直没有把它做成动态库,所以每次程序都要联接到几百K.另外,GCC模板的生成也 很笨(或者说为了附合标准),所以目标程序很大.不过在mingw中有一个strip的程序. 可以为它减肥. 想要产生小的程序有几个方法: 0.优化程序!!!! 1.全部使用动态库,包括C运行库. 2.不要调试选项. 3.使用面向程序大小的的优化选项.
分享到:
|
欢迎光临我的博客 http://chinesedragon.blog.com.cn
|
|
|
|