gcc是Linux系统下的C/C++编译器,具有非常强大的功能。一般Linux平台开发的C语言程序,都会通过gcc来编译成可执行文件。
gcc的全称是GNU Compiler Collection,顾名思义,它是一个编译器的集合。经过多年的发展,gcc不仅仅支持C/C++,还支持Ada、Java、Objective C、Pascal、COBOL等语言。gcc还基本支持所有的硬件平台。
gcc在编译一个程序是,会经过预处理、编译、汇编和连接等几个过程。我们使用gcc编译时,这几个过程都是自动完成的,我们也可以通过修改设置来详细控制每个步骤。
我们知道,在linux中文件的后缀名不重要。但是,gcc对文件的后缀有特殊的识别要求,你给它一个“.c”后缀的文件,它才能把它当成C语言的源文件来编译。下面是一些文件后缀:
.c,C语言源文件
.C或.cc或.cpp,C++的源文件
.h,头文件
.i,中间代码文件
.o,目标文件
.s,汇编语言源代码文件
.S,经过预编译后的汇编语言源代码文件
gcc编译源文件的命令是:
gcc source.c
默认情况下,它会在source.c的当前目录下生成一个a.out,它就是最终的可执行文件!这个名字有点难以接受啊!加一个参数:
gcc -o program source.c
这个命令将生成一个名为program的可执行文件,而不会再是a.out了。当然,可以在program前面加以个路径,这样可以把可执行文件生成到你想要的位置。
如果我们想要查看编译的过程,可以使用-v参数。
例如:gcc -v -o program source.c
如果源代码文件不能识别,需要用-x参数来手工指定源代码类型。
例如:gcc -x 'c' -o program source.xx