32-битная сборка Linux - объединение файлов (gas и ld) - PullRequest
0 голосов
/ 04 октября 2010

Я написал функцию с именем strlen:

.section .text
.global strlen
.type strlen, @function
strlen:
... code ...

Я собрал это так:

as --32 strlen.asm -o strlen.o

Затем я написал программу в asm для вывода argv, с которой я хочу связать это Я собрал это так же. Теперь я хочу связать их вместе, чтобы настоящая программа могла использовать strlen. Я попробовал:

ld printnum.o strlen.o -m elf_i386 -o printnum

но это дает:

printnum.o: In function `loop':
(.text+0x5): undefined reference to `strlen'

Я, должно быть, упускаю что-то действительно простое. Спасибо!

1 Ответ

0 голосов
/ 04 октября 2010

Раньше я тупо запускал strip на strlen.o, который явно убрал все символы Хорошая работа меня.

...