导图社区 GNU编译工具链
一张思维导图带你了解GNU编译工具链,内容有工作流程、基本组成、交叉编译器gcc、交叉汇编器as、过程。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
GNU编译工具链
工作流程
预处理
编译
汇编
链接
基本组成
GCC
源程序->汇编
驱动其他工具
Binutils
汇编->目标文件->可执行程序
Glibc
提供语言和操作系统标准库函数
GCC使用的C函数库和针对Linux的线程库
交叉编译器gcc
编译的前端程序,调用其他程序
步骤
预处理程序cpp
对输入的源程序进行处理
cc1
将处理后的程序汇编成汇编代码
汇编器as
将汇编代码编译成目标代码
跨平台
程序需要转化为机器能够编译的合理输入文件
交叉汇编器as
汇编语言程序->ELF(执行时链接文件)格式的可重定位目标代码
可重定位:转换后程序每次加载的位置不固定
as产生
交叉参考表(交叉引用表)
标准的符号表(.lst列表文件)
as产生的代码和数据能够放在多个段(Section)中
汇编(器)的任务
在汇编过程中,根据汇编命令用适当的段将各部分代码和数据连在一起,构成目标文件
即将各部分程序代码和数据连在一起,形成OBJ文件
命令格式
as [option...] [asmfile]
过程