【发布时间】:2013-03-13 18:20:47
【问题描述】:
我打算使用objcopy 将文本文件的二进制形式包含到可执行文件中。 (在运行时我需要文件作为字符串)。这工作正常,直到链接器需要从符号名称中找到引用。问题是objcopy 在符号名称前面加上文件的路径名。由于我使用 GNU Autotools 来发送包,所以这个前置路径名发生了变化,我不知道在 C/C++ 程序中使用什么外部链接器符号。
nm libtest.a |grep textfile
textfile.o:
00001d21 D _binary__home_git_textfile_end
00001d21 A _binary__home_git_textfile_size
00000000 D _binary__home_git_textfile_start
libtest.a 是用(从 Makefile.am 中提取的)生成的:
SUFFIXES = .txt
.txt.$(OBJEXT):
objcopy --input binary --output elf32-i386 --binary-architecture i386 $< $@
我如何告诉objcopy 仅将文件名的主干作为链接器符号?还是有其他方法可以解决这个问题?
【问题讨论】: