Mi sto legando per utilizzare objcopy
per includere un modulo binario di un file di testo in un file eseguibile. (A runtime ho bisogno del file come stringa). Funziona bene finché il linker non ha bisogno di trovare i riferimenti dai nomi dei simboli. Il problema è che objcopy
antepone i nomi dei simboli con il percorso al file. Dal momento che sto usando GNU Autotools per spedire il pacchetto, questo nome di percorso predefinito cambia e non so quale simbolo del linker esterno usare nel programma C/C++.objcopy antepone il nome di percorso di directory al nome di simbolo
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
è stato prodotto con (estratto da Makefile.am):
SUFFIXES = .txt
.txt.$(OBJEXT):
objcopy --input binary --output elf32-i386 --binary-architecture i386 $< [email protected]
Come posso dire a objcopy
solo noi lo stelo del nome del file come simboli del linker? O c'è un altro modo per aggirare il problema?
Utilizzare 'stdin' e' extern' per evitare di memorizzare la fonte. – Alex
@Alex Non sono sicuro di capire cosa intendi. –
usando '-x' e '-' come input per' gcc'/'g ++' –
Alex