系统移植-交叉编译工具链

不同架构的机器码 与 汇编语言 都不可移植, 且二者一一对应

c语言中三种成分:

1.分号结尾的叫做语句   语句可以让CPU执行,可以进行预处理,编译等生成机器码

2.#开头的为预处理指令 不带分号  CPU无法执行

3.注释,CPU不执行

1.C语言执行的四个步骤


a.预处理:进行宏定义的替换,例如#define等,删除注释,头文件的展开,例如#include,预处理后的文件为.i文件;
b.编译:处理过的C语言生成汇编语言,生成.s文件
c.汇编:将汇编文件生成二进制机器码,生成.o文件
d.链接:调用库,库为编译好的二进制文件,库文件是区分架构的

2.区分elf文件和bin文件

exe为Windows系统下可执行文件

elf为Linux系统下可执行文件,为二进制文件

elf运行在Linux系统之上的可执行文件,需要操作系统

bin文件是运行在CPU执行,只包含汇编生成的机器码以及全局变量对应的机器码

,不包含其他任何系统信息。

data和bss段可分配全局变量的空间,局部变量只有程序运行起来的时候在栈上分配空间。 

 

3..简述交叉编译工具链中strip及objdump工具的主要用途是什么?

strip删除符号表中的符号,减小elf文件的大小,但不影响程序的运行
  objdump显示文件的信息

objcopy可以将elf文件生成bin文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值