您的位置:首页 > 运维架构

objcopy命令介绍

2013-03-27 18:21 148 查看
今日在阅读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

再于是写了此文以便以后斟酌。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: