导语
GCC是GNU Compiler Collection的缩写,包含gcc、g++等编译工具。这个工具不仅包含编译器,还包含其他工具集,例如ar、nm等。今天简单的讲一讲这个工具。
简介
GCC能编译C、C++、Objective-C、Fortran、Java、Ada等语言。GCC可以在不同的硬件平台编译,即支持交叉编译。
GCC的c编译器是gcc,其命令格式为
Usage:gcc [options] file...
GCC支持默认拓展名策略,下表是GCC下默认文件拓展名的含义。
GCC常用的编译器有
头文件和库文件的默认路径是
单个文件编译成执行文件
$gcc hello.c
会在当前目录下自动生成文件名为a.out的可执行文件。
如果想要指定生成的可执行文件名,啧加一个-o参数
$gcc -o hello hello.c
此时就会出现一个叫hello的可执行文件。
编译生成目标文件
编译的过程分为如图所示
源文件、目标文件和可执行文件是常用的三个词。源文件即是存放源代码的文件。目标文件是指经过了编译器的编译生成的二进制机器码,但是目标文件的一些函数过程没有相关的指示和说明,所以一般不可执行。可执行文件是目标文件与相关的库连接后的文件,它是可以执行的。
单个文件编译成可执行文件时,中间文件只在编译的过程中临时存在,在编译完成生成可执行文件之后,会删除掉目标文件。然而在大型项目中目标文件需要保留用于不同的编译目标。
$gcc -c (-o hello.o) hello.c
GCC使用一个-c的