C语言编译器MINGW的使用说明_第1页
C语言编译器MINGW的使用说明_第2页
C语言编译器MINGW的使用说明_第3页
C语言编译器MINGW的使用说明_第4页
C语言编译器MINGW的使用说明_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在mingw环境中生成和使用dll都是十分方便的。1 .生成dllgcc(g+)-shared-otest.dlltest.c一直用VS,看现在Eclipse很火,便想弄一下玩玩,用到了MINGW/继而用到了GCCKGCC相当的不熟悉,从头开始学一些简单的吧。简单的GC5法gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。一.常用编译命令选项假设源程序文件名为test.c。1 .无选项编译链接用法:#gcctest.c作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默

2、认输出为a.out。编译成功后可以看到生成了一个a.out的文件。在命令行输入./a.out执行程序。./表示在当前目录,a.out为可执行程序文件名。2 .选项-o用法:#gcctest.c-otest作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-。选项用来指定输出文件的文件名。输入./test执行程序。3 .选项-E大写,注意用法:#gcc-Etest.c-otest.ior作用:将test.c预处理输出test.i文件。4 .选项-S大写,注意用法:#gcc-Stest.i作用:将预处理输出文件test.i汇编成test.s文件。5 .选项-c用法:#gcc-ct

3、est.s作用:将汇编输出文件test.s编译本出test.o文件。6 .无选项链接用法:#gcctest.o-otest作用:将编译输出文件test.o链接成最终可执行文件test。输入./test执行程序。7 .选项-O用法:#gcc-O1test.c-otest作用:使用编译优化级别1编译程序。级别为13,级别越大优化效果越好,但编译时间越长。车入./test执行程序。二.多源文件的编译方法如果有多个源文件,基本上有两种编译方法:假设有两个源文件为test.c和testfun.c1 .多个文件一起编译用法:#gcctestfun.ctest.c-otest作用:将testfun.c和te

4、st.c分别编译后链接成test可执行文件。2 .分别编译各个源文件,之后对编译后输出的目标文件链接。用法:#gcc-ctestfun.c/将testfun.c编译成testfun.o#gcc-ctest.c/将test.c编译成test.o#gcctestfun.otest.o-otest/将testfun.o和test.o链接成test以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。1.gcc的家族成员总的来说,gcc应该是一个编译器。可是,为什么我还要在这里介绍gcc的家族成员呢?其实,整套的gcc环境并不是由gc

5、c构成的,他是由多个包所组成的。这些包的互相作用产生了gcc的开发环境。其中,有一些包是你开发应用程序所必备的基本包。离开这些包你将无法正常使用gcc。gcc开发环境包括如下几大包:binarygcc基本包提供基本的汇编器,连接器等基本包各种语言的编译器,包才C,C+,Ada,JavaWin32api,mingwi-runtime/glibcmake/automakegdb2.gcc的常用编译参数基本包系统函数库需要包管理项目编译的程序附加包调试程序同VC,TC等编译器不同,gcc其实是可以很方便的在提示符下编译程序的。gcc在提示符下编译程序,并没有如同VC那样的冗长而晦涩的编译参数。相反,

6、却有着比VC更灵活且简短的参数。不得不承认,不懂gcc编译参数的人,确实会损失一些gcc的强大功能。所以,我下面简单介绍一下gcc的一些基本编译参数。这里,我以C编译器为例。注意:gcc的编译参数是区分大小写的。编译二进制代码gcc-cyours.c-oyours.o使用这段指令,gcc将会把yours.c编译成yours.o的二进制代码。其中,yours.o就类似于VC,TC中的.obj文档。编译最简单的小程序gcc-oyoursyours.c通过这条指令,gcc将会把yours.c源代码编译成名为yours的可执行程序。当然,您也可以将yours.c改成我们刚才介绍的yours.o文件。这

7、样,gcc将使用编译刚才编译好的二进制文档来链接程序。这里,格式的特点是,-o后面是一串文件列表,第一个参数是所编译程序的文件名,从第二个开始,就是您编译和连接该可执行程序所需要的二进制文档或者源代码。编译时将自己的头文件目录设为默认头文件目录gcc-I"Your_Include_Files_Document_Path"-cyours.c-oyours.o这条指令中的-I参数将会把Your_Include_Files_Document_Path添加到你默认的头文件目录中。这样您将可以使用#include<your_include.h>来导入头文件。编译时使用自己

8、的静态库存放目录gcc-L"Your_Lib_Files_Document_Path"-oyoursyours.o这条指令将会让gcc在连接时除了在默认Lib存放目录中搜索指定的静态库以外,还会在Your_Lib_Files_Document_Path中搜索。编译时使用静态连接库gcc-lyour_lib-oyoursyours.o这条指令将会让gcc在连接时把libyour_lib.a中您所用到的函数连接到可执行程序中。此处注意,gcc所使用的静态连接库是lib*.a格式的。在连接时,只且仅需要提供*的内容就可以了。编译时使用优化gcc-O2-cyours.c-oyour

9、s.o使用优化方式编译程序,其中除了-O2以外,还有-O3-O1等等。他们代表不同的优化等级。最常用的,是-O2优化。当然,还有针对特殊CPU的优化,这里就不介绍了。编译时显示所有错误和警告信息gcc-Wall-cyours.c-oyours.ogcc在默认情况下,将对一些如变量申请未使用这样的问题或者申请了没有给予初始值的问题忽略。但是,如果使用了-Wall参数,编辑器将列出所有的警告信息。这样,您就可以知道您的代码中有多少可能会在其他操作系统下出错的地方了。(用这个指令看看你的代码有多少地方写的不怎么合适。)编译连接时,加入调试代码gcc-g-oyoursyours.c正如同VC有debu

10、g编译模式一样,gcc也有debug模式。添加了-g参数编译的可执行程序比普通程序略为大一些,其中添加了一些调试代码。这些代码将被gdb所支持。连接时缩小代码体积gcc-s-oyoursyours.o因为有人说Visual-MinGW生成的代码小,于是研究了一下它的编译参数,发现release模式的编译参数就加了这一项。貌似编译后的代码的确缩小了很多。反汇编gcc-Syours.c用这个指令能把C语言变成汇编语言,不过不是常见的Intel语法,而是AT&T语法。两者的语法有很大的区别。获得帮助gcc-help这条指令从意思上就能看出,获得gcc的帮助信息。如果您有什么特殊需要,也许这个

11、指令能帮上点小忙。总结:gcc的编译参数是可以组合起来的,如:gccyours.c-oyours-Wall-s-O2预告:下一篇将介绍用gdb调试C程序MinGWV门(1)搭建开发环境半糖主义发表于2008年02月10日00:30阅读(178)评论(1)分类:MinGW举报GCC是一个原本用于Unix系统下编程的编译器。不过,现在GCCk有了许多Win32下的移植版本。所以,也许对于许多Windows开发者来说,GC如是一个比较陌生的东西。目前GCQfcwindows下有三个移植版本:MinGWCygwin和Djgpp。笔者对MinGW:匕较熟悉,而其它2个没怎么用过。本文主要讲述如何安装和配

12、置MinGWMinGW是MinimalisticGNUforWindows的缩写。它是一个建立在GCCF口binutils项目上的编译器系统。和其他GCC勺移植版相比,它可以说是最接近Win32的一个了。因为,MinGWL乎支持所有的Win32API,这也是MinGW勺特色之一。它所连接的程序,不需要任何第三方库就可以运行了。在某种程度上看,MinGW庾像是VC的替代品。MinGW可以从上获得。要安装MinGWT两种方案:第一种方案:手动安装至Uhttp:缩包。考虑到文件的更新,笔者只写出文件的主要部分,省去文件的版本和更新日期(注:带有src表示源代码)

13、。gcc-core:C语言编译器,目前有2、3、4三个版本,推荐使用最新的。gcc-g+:C+闻言编译器,版本同上。(可选)binutils:MinGW勺汇编器和连接器等基础工具。mingw32-make:Make工具,用以管理你的项目。gdb:MinGWW试器。win32api:win32的API函数头文件和连接库mingw-runtime:MinGW勺运行时库把以上的压缩包解压到一个目录中,如F:MinGWo注:MinGW®包括一个MSYM(MinimalSYStem)。这个工具是用来模仿UnixShell,它可以把Unix上的命令转换成Windows命令,如果习惯Unix可以下

14、载这个工具。把MinGW勺目录F:MinGWbin添加进PATH%境变量中,可以在系统属性那里永久设置,或者建一个bat文件,写入以下字符:setPath=%PATH%;FMinGWbin然后进入DOSi!行这个bat文件即可。最后在MS-DO科境下运行:gcc-v如果显示类似下面一段GCC勺版本信息,说明你安装的MinGWfB正常工作了。C:>gcc-vUsingbuilt-inspecs.Target:mingw32Configuredwith:./gcc-4.2.1/configure-with-gcc-enable-libgomp-host=mingw32-build=mingw

15、32-target=mingw32-program-suffix=-sjlj-with-arch=i486-with-tune=generic-disable-werror-prefix=/mingw-with-local-prefix=/mingw-enable-threads-disable-nls-enable-languages=c,c+,fortran,objc,obj-c+,ada-disable-win32-registry-enable-sjlj-exceptions-enable-libstdcxx-debug-enable-cxx-flags=-fno-function-s

16、ections-fno-data-sections-enable-version-specific-runtime-libs-disable-bootstrapThreadmodel:Win32gccversion4.2.1-sjlj(mingw32sjlj-unwind)第二种方案:自动安装至Uhttp:MinGW-x.x.x.exe。安装过程它会自动从网上下载相应的文件,并自动配置好环境。相信对于Windows下的开发人员没什么问题了。在2种安装方法,笔者偏爱第一种。因为控制度高,比较自由,要更新什么文件直接下载覆盖即可。第二种方案还有一个缺点,就是它下载的文件可能不是最新的。这样,你就可以在任何目录下使用MinGWT。后记:想当初笔者自己在安装配置MinGW勺时候,不知走

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论