https://www.jianshu.com/p/09c8edd86a96
姓名:曾国强
学号:19021210984
【嵌牛导读】GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)
【嵌牛正文】
一、GCC程序的编译过程大概分四个阶段
1、预处理(Pre-Processing)
2、编译(Compiling)
3、汇编(Assembling)
4、链接(Linking)
二、GCC命令的常用选项
-E:生成预处理文件.i(头文件和宏展开)
-S:编译成汇编文件.s
-c:汇编处理,生成机器码(可执行文件).o
-o:指定输出文件名
-g:生成调试代码
-I:指定第一个寻找头文件的目录
-L:指定第一个寻找库文件的目录
-Wall: 打印所有警告信息
三、GCC命令的编译过程
例如:hello.c文件编译过程
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
1、生成预处理文件hello.i
gcc -E hello.c
在此过程中,gcc编译器将hello.c中的头文件插入到该文件中和并将hello.c中的宏进行展开。
2、编译成汇编代码文件hello.s
gcc -S hello.i
gcc在生成汇编代码后,停止。
3、将汇编代码文件编译成目标文件 hello.o
gcc -c hello.s
4、连接
gcc hello.o -o hello