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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage