我需要使用 sde-objcopy 将图片转换为目标文件(.o),然后我可以在我们的无操作系统系统中使用这张图片。我已经测试了 objcopy 命令,它在我的 PC(Fedora 12)上运行良好。例如,下面的命令会将 test.jpg 转换为 test.o。
objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o
以下是我的问题:
一个。sde-objcopy 没有“-B”选项来指定架构,但如果我没有指定架构,它将响应如下警告:
$ sde-objcopy -I binary -O elf32-little test.jpg test.o
sde-objcopy:警告:输出文件不能代表架构未知!
如何解决此警告?
乙。似乎 objcopy 使用文件名在目标文件中生成符号。如果我使用完整路径(例如/home/owner/stdy/test.jpg
)作为 objcopy 的参数,它将生成长命名符号。有什么优雅的方法可以解决这个问题吗?
$ objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o
$ nm test.o
00000083 D _binary____stdy_test_jpg_end
00000083 A _binary____stdy_test_jpg_size
00000000 D _binary____stdy_test_jpg_start
$ objcopy -I binary -O elf32-i386 -B i386 test.jpg test.o
$ nm test.o
00000032 D _binary_test_jpg_end
00000032 A _binary_test_jpg_size
00000000 D _binary_test_jpg_start