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语言程序。例如,我们可以以下面的命令将上面小节中的例子源程序编译成一个可执行程序。

 
  
  1. gcc -g -O max.c -o max 

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

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

 
开发工具拼图

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