C语言嵌入式Linux高级编程:程序的编译、链接与运行深度解析
一、程序的编译过程
1.1 编译流程概览
C程序的编译过程分为四个阶段:预处理、编译、汇编和链接,每个阶段调用不同的工具完成特定任务:
-
预处理:处理宏、头文件、条件编译,生成
.i
文件。 -
编译:将预处理后的代码转换为汇编代码,生成
.s
文件。 -
汇编:将汇编代码翻译为机器码,生成可重定位目标文件
.o
。 -
链接:合并多个目标文件和库,生成可执行文件。
GCC工具链示例:
gcc -E main.c -o main.i # 预处理 gcc -S main.i -o main.s # 编译 gcc -c main.s -o ma