Assemblea Linux a 32-bit - Collegamento di file insieme (gas e ld)
Domanda
ho scritto una funzione chiamata strlen:
.section .text
.global strlen
.type strlen, @function
strlen:
... code ...
ho assemblato questo modo:
as --32 strlen.asm -o strlen.o
Poi ho scritto un programma in asm stampare argv quale voglio legame con questo. Ho assemblato che allo stesso modo. Ora voglio collegarli tra loro in modo che il vero programma può usare strlen. Ho provato:
ld printnum.o strlen.o -m elf_i386 -o printnum
, ma che i rendimenti:
printnum.o: In function `loop':
(.text+0x5): undefined reference to `strlen'
Devo mancare qualcosa di molto semplice. Grazie!
Soluzione
In precedenza ho stupidamente corse strip
su strlen.o che ovviamente rimosso tutti i simboli. Buon lavoro io.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow