gcc 编译 hello.c -o 生成的目标(可执行文件)名字为 world
预处理
gcc -E hello.c -o hello.i
带#的语句就是预处理指令,预处理指令在预处理的时候处理了
#include <stdio.h>
包含文件stdio.h
(预处理时将stdio.h 文件拷贝至预处理文件中)//
/* */
#define
代表是声明一个宏,在预处理时会将宏给替代
(预处理的时候就会替换)#if 0 -> #endif
条件成立 #if 1 -> #endif
0表示不成立
1表示成立
编译
gcc -S hello.i -o hello.s
汇编
gcc -c hello.s -o hello.o
链接
gcc hello.o -o hello
选项 | 含义 |
---|---|
-E | 只进行预处理 |
-S(大写) | 只进行预处理和编译 |
-c(小写) | 只进行预处理、编译和汇编 |
-o file | 指定生成的输出文件名为 file |
文件后缀 | 含义 |
---|---|
.c | C 语言文件 |
.i | 预处理后的 C 语言文件 |
.s | 编译后的汇编文件 |
.o | 编译后的目标文件 |
gcc hello.c -o demo(还是经过:预处理、编译、汇编、链接的过程):