Linux下gcc编译C/C++文件过程分解
以下面简单的main.c文件为例
#include <stdio.h>
int main(){
printf("Hello World from w1 main!\n");
return 0;
}
在Linux下执行C/C++的编译过程要严格遵循gcc的编译规律,gcc的相关命令提示可以从命令行中获得相关提示
一般来说,我们利用gcc编译一个简单的C/C++文件只需要在文件路径下执行以下命令,即可在路径下生成一个名为a.out的可执行文件,执行该文件即可获得main.c的执行结果。
gcc main.c
./a.out
但该命令实际上系统在执行时被分为4步,为了更进一步了解gcc的编译过程,下面展开介绍
- 预处理
- 汇编器
- 编译器
- 连接器
# 预处理(-o 输出重命名)
gcc -E mian.c -o main.i
# 汇编器
gcc -S main.i
# 编译器
gcc -c main.s
# 连接器
gcc main.o -o main