第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 怎样用gcc编译c语言 使用GCC编译C语言程序

怎样用gcc编译c语言 使用GCC编译C语言程序

时间:2022-11-18 03:21:18

相关推荐

怎样用gcc编译c语言 使用GCC编译C语言程序

使用Eclipse CDT开发C语言程序,虽然使用很方便,效率也很高,但是它向我们隐藏了很多细节。虽然大多数时候这并不影响我们的开发,但是当我们需要对程序的编译链接过程进行更加特殊的控制,以获得可以满足特殊要求(例如,对程序进行优化、附带调试信息等)的程序的时候,就需要直接调用编译器程序进行编译链接,从而可以使用编译器所提供的丰富的编译选项,以达到对编译器的行为进行灵活控制,得到我们想要的个性化的可执行程序的目的。

我们通常所说的GCC编译器,是GUN Compiler Collection的简称。GCC原本只能编译C语言程序。但是,当C++流行起来后,GCC很快地被扩展,变得可编译C++程序。之后,GCC更是被进一步扩展,变得可支持Fortran、Objective-C以及Java等主流开发语言的编译。从GCC的应用来看,它是Linux/UNIX平台下最常用的编译器程序。同时,在Linux/UNIX平台下的嵌入式开发领域,GCC也是用得最普遍的一种编译器。除了Linux/UNIX操作系统之外,GCC还能运行在其他不同的操作系统上,如Solaris、Windows(需要自己安装Cygwin或者是MinGW)、Mac OS X操作系统等。正是GCC编译器应用的广泛性,使其成为C以及C++编译器的事实上的标准。

GCC的使用方法跟谭老师所介绍的Visual C++的编译器的使用方法非常相似,它的调用方式如下:

gcc [编译选项] [文件名]

其中,gcc是GCC的C语言编译命令,其后的编译选项,是用于控制编译器的编译行为的。GCC常用的编译选项有:

-c

"-c"选项表示只编译,不链接成为可执行文件,编译器只是将输入的.cpp等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主函数的子程序文件。

-o

"-o 输出文件名",这个选项用于指定输出的可执行文件的名称,如果不给出这个选项,GCC 就给出预设的可执行文件。在Linux系统上,这个默认的输出文件名为a.out,相应的,在Windows系统上这个默认的文件名就是a.exe。

-g

使用"-g"编译选项将会产生调试工具(例如,GNU的GDB)所必需的符号信息,要想对源代码进行调试,我们就必须加入这个编译选项。

-O

"-O"选项表示编译器将对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的体积可能减小,执行效率也可能提高,但是,编译、链接的速度就相应地要慢一些。

-I

"-I 目录名"可以指定GCC的附加头文件目录,我们在使用第三方提供的程序库的时候常常会用到这个选项,用于将程序库的include目录添加为程序的附加头文件目录。

实际上,GCC所提供的编译选项可能有数百个之多,我们只需要了解以上这些常用的编译选项就可以了。到真正需要的时候,可以查阅相应的参考手册。

在了解了GCC的基本使用方法之后,利用GCC,我们同样可以以命令行的方式来编译链接C语言程序。例如,我们可以以下面的命令将上面小节中的例子源程序编译成一个可执行程序。

gcc-g-Omax.c-omax

通过这样一个简单的命令,我们就将max.c这个C语言源文件编译并优化成了一个可执行文件max,在编译的过程中,还生成了相应的调试信息。通过这样的方式,我们对C语言程序的编译链接过程进行了自定义。

虽然以命令行的方式使用GCC编译链接C语言程序,可以对编译链接过程进行很好的控制,但是每次编译都需要输入这些常用的编译命令,无疑是一件烦人的事情。程序员就是为了解决麻烦而存在的,怎么能够被麻烦所困扰呢。为了解决这个问题,我们通常将一些文本编辑器(例如vim或者EditPlus)配置成可以直接调用GCC命令,这样,在文本编辑器中编辑好源文件之后,就可以直接调用它的自定义命令来编译链接源文件,得到最终的可执行程序。如果是一些比较大型的项目,有多个源文件,我们则常常使用更加强大的make构建工具,在一个Make File中定义好各个源文件的编译链接规则,然后使用make命令来编译链接整个项目。

开发工具拼图

利用GCC,GDB、make工具以及文本编辑器,我们完全可以打造一个高度自定义的,完全适合自己开发习惯的C语言开发环境,真的是做到了"我的地盘我作主"。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。