32位Linux程序集 - 将文件链接在一起(gas和ld)

时间:2010-10-04 03:29:40

标签: assembly linker ld gas

我写了一个名为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 :(得分:0)

之前我在strlen.o上愚蠢地运行了strip,这显然删除了所有符号。干得好。