嵌入式开发模型—交叉开发
在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。
由于我们是把编译出来的程序运行在ARM平台上的,所以我就必须使用arm-linux-gcc、arm-linux-ld、arm-linux-objcopy、arm-linux-objdump等交叉编译工具。
arm-linux-gcc选项
一个C/C++文件要经过预处理、编译、汇编和链接等步才能变成可执行文件。
1)预编译
C/C++源文件中,以"#"开头的命令被称为预处理命令,预处理就是将要包含(include)的文件插入原文件中、将宏定义展开、根据条件编译命令选择要使用的代码。
2)编译
把C/C++代码“翻译”成汇编代码
3)汇编
把汇编代码翻译成符合一个格式的机器代码
4)连接
把上步生成的OBJ文件和系统库的OBJ文件、库文件连接起来,最终生产可以在特定平台上可运行的可执行文件。
总体选项
1.-c
预处理、编译和汇编源文件,但是不作连接,编译器根据源文件生成OBJ文件。
2.-S
编译后即停止,不进行汇编。
3.-E
预处理后即停止,不进行编译。
4.-o file
指定输出文件为file。无论是预处理、编译、汇编还是连接,这个选项都可以用。如果没有