[学习日志][2-2-2][交叉工具链]

交叉工具链

1.交叉工具是编译在arm平台上运行程序的工具,交叉工具链是交叉工具的集合

2.file filename

通过file命令可以查看程序运行的平台等相关信息

3.交叉开发

1.在x86平台上产生其他平台上运行程序的模式叫做交叉开发

2.宿主机是产生嵌入式软件的平台,目标机是运行嵌入式软件的平台

常用的交叉工具

1.交叉编译器

arm-linux-gcc

相同之处

arm-linux-gcc file.c -o file

与gcc用法上一样

不同之处

gcc从 /usr/include/ 下寻找头文件

arm-linux-gcc从 /usr/loacl/arm/…/lib 下寻找头文件

arm-linux-gcc -print-search-dirs 查看头文件路径,通过–help可以找到这个选项

2.交叉链接器

arm-linux-ld -Tfile.lds file1.o file2.o… -o file.elf

把file1.o file2.o和file.lds链接成led.elf文件

3.交叉ELF读取器

1.arm-linux-readelf -a file.elf

在输出信息的Data中可以看到运行的大小端模式,Machine中可以看到运行的处理器

2.arm-linux-readelf -d file.elf

可以查看程序运行的动态运行库信息

3.一般程序运行不了,可以通过file查看程序的处理器和大小端,readelf -a 查看程序的处理器和大小端,readelf -d 查看程序的动态运行库信息

4.交叉反汇编器

1.arm-linux-objdump -D -S file >dump

把反汇编file文件信息输入到dump中保存

2.arm-linux-gcc -g file.c -o file

可以在反汇编代码时中加入C语言的信息,方便阅读代码

5.交叉转换器

1.arm-linux-objcopy -O binary file.elf file.bin

“-O binary”表示输出的是二进制格式,把输入文件file.elf转换成file.bin输出

2.通过arm-linux-gcc生成的程序都是elf格式的程序,不能直接在arm处理器上运行。在Linux系统有elf转换器,可以把elf格式文件转换成二进制文件运行。所以要直接在arm处理器上运行需要把elf格式转换成二进制格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值