我打算使用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
我们文件名的词干作为链接器符号?还是有其他解决问题的方法?