一个C文件要经过预处理、bianyi编译、汇编和连接才能变成可执行文件。
1.预处理
源文件中,以‘#’开头的命令被称为预处理命令。如包含“#include”、“#define”、“#if”和“#ifdef”等。预处理就是将包含的文件插入到原文件中,将宏定义展开,根据条件编译命令选择要使用的代码,最后将这些代码输出带一个".i"的文件中等待进一步处理。预处理将用到arm-linux-cpp工具。
2.编译
编译就是把C代码比如上述的.i文件翻译成汇编代码。所用到的工具为ccl.
3.汇编
汇编就是将上述的汇编代码翻译成符合一定格式的机器代码,在linux上一般表现为elf目标文件(OBJ文件),用到的工具为arm-linux-as,“反汇编”是指将机器代码转化为汇编代码。
4.连接
连接就是将上述生成的OBJ文件跟系统库的OBJ文件、库文件连接起来,最终生成可以在特定平台上运行的可执行文件。用到的工具为arm-linux-ld。