objcopy命令介绍

今日在阅读uboot中关于显示开机logo的代码。图片以rle格式与uboot源码放在一起,如图片文件为my_test.rle

发现在往LCD framebuffer倒入数据时使用两个外部数组:

extern char const my_test_rle_start[];
extern char const my_test_rle__end[];

source insight 搜索一圈没发现以上两个数组的定义。于是查看图片文件所在目录下的makefile,发现有如下编译项:

 

OBJS    += my_test.o

my_test.o:
 $(OBJCOPY) -I binary -O elf32-littlearm -B arm my_test.rle $@

 

于是查阅关于OBJCOPY的东东,得到如下资料:

 

将图像编译到可执行文件内

Q: 如何将一个二进制文件,比如图片,词典一类的东西做为.o文件,直接链接到可执行文件内部呢?
A:
$ objcopy -I binary -O elf32-i386 -B i386 14_95_13.jpg image.o
$ gcc image.o tt.o -o tt
$ nm tt | grep 14_95
0805d6c7 D _binary_14_95_13_jpg_end
00014213 A _binary_14_95_13_jpg_size
080494b4 D _binary_14_95_13_jpg_start
 
再于是写了此文以便以后斟酌。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值