1.预处理结点
GCC的选项“-E”可以使编译器在预处理结束时就停止编译
gcc -E -o hello.i hello.c
后缀名“.i”的文件是经过预处理的C原始程序。
2.编译阶段
GCC的选项"-S"能使编译器在进行完编译之前就停止。
3.汇编阶段
汇编阶段把编译阶段生成的“.s”文件生成目标文件,在此使用“-c”就可以查看到汇编代码转化为".o"的二进制目标代码了。
4.链接阶段
---------------------------------------------------------------------------------------------------------------------------------
若用户要调用含有同名动态库的静态库文件,则在"-l"后需要显示地写出包含后缀名的文件名,如:要调用libm.a库文件时就需写作“-llibm.a”
嵌入式系统开发环境的搭建
1.编译binutils
2.初次编译gcc
gcc编译分两次。由于此时没有编译glibc,因此还不能完整地编译gcc,但glibc的编译又离不开gcc,因此,在这里需要首先编译出一个具体最基本功能的gcc,在编译完glibc之后再完整编译gcc。
修改“gcc/config/arm/t-linux"这个配置文件,使其不对libc和gthr_posix.h文件进行编译。
添加"-Dinhibit_libc"和”-D--gthr_posix_h“
3.编译glibc
4.完整编译gcc