objcopy stellt dem Symbolnamen den Verzeichnispfad voran
Ich binde zu benutzenobjcopy
um eine binäre Form einer Textdatei in eine ausführbare Datei aufzunehmen. (Zur Laufzeit brauche ich die Datei als String). Dies funktioniert einwandfrei, bis der Linker die Referenzen aus den Symbolnamen finden muss. Das Problem ist, dassobjcopy
Stellt den Symbolnamen den Pfadnamen vor die Datei. Da ich GNU Autotools verwende, um das Paket zu versenden, ändert sich dieser vorangestellte Pfadname und ich weiß nicht, welches externe Linkersymbol im C / C ++ - Programm verwendet werden soll.
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
wurde hergestellt mit (Auszug aus Makefile.am):
SUFFIXES = .txt
.txt.$(OBJEXT):
objcopy --input binary --output elf32-i386 --binary-architecture i386 SUFFIXES = .txt
.txt.$(OBJEXT):
objcopy --input binary --output elf32-i386 --binary-architecture i386 $< $@
lt; $@
Wie kann ich sagenobjcopy
uns nur der stamm des dateinamens als linkersymbol? Oder gibt es einen anderen Weg, um das Problem zu umgehen?