gcc的基本编译过程
本文有参考链接:
gcc的基本编译过程图示(从参考链接里取的):
下面是我自己使用Makefile编写的gcc的四个编译过程的代码:
# Makefile:
# gcc的基本编译的阶段过程
cc = gcc
objs = main_run.o
# 4. 链接, 将所有的汇编文件链接为总执行文件
main_run: $(objs)
$(cc) $^ -o $@
# 1. 预处理, 产生将头文件展开进.c文件后的总代码文件(.i文件)
main_run.i: main_run.c
$(cc) -E main_run.c -o main_run.i
# 2. 仅编译, 产生汇编语言指令文件.s
main_run.s: main_run.i
$(cc) -S main_run.i -o main_run.s
# 3. 仅汇编, 使用编译产生的.s文件来编译出目标文件(.o文件)
%.o: %.s
$(cc) -c $< -o $@
# 其他指令
.PHONY: clean
clean:
rm $(objs) main_run ./*.i ./*.s