我正在尝试在Intel架构的Linux汇编中编译一个小程序。我想使用一些C库的函数,但它无法链接。
这是我的汇编程序:
.text
.globl main
main:
pushl $512
call malloc
addl $4, %esp
mov $1, %eax
mov $0, %ebx
int $0x80
我正在编译
as --32 -o output.o output.asm
在这里,一切都很顺利。但是当我链接时就出现了问题。
ld -static -m elf_i386 -o a.out output.o -lc
我遇到了以下错误:
(.text+0x1b8):对
_Unwind_Resume
的引用未定义 /usr/lib32/libc.a(iofclose.o):(.eh_frame+0x167):对__gcc_personality_v0
的引用未定义 /usr/lib32/libc.a(iofflush.o):在函数fflush
中:对_Unwind_Resume
的引用未定义 /usr/lib32/libc.a(iofflush.o):(.eh_frame+0xdf):对__gcc_personality_v0
的引用未定义 /usr/lib32/libc.a(iofputs.o):在函数fputs
中:对_Unwind_Resume
的引用未定义 /usr/lib32/libc.a(iofputs.o):(.eh_frame+0xdf):对__gcc_personality_v0
的引用未定义 /usr/lib32/libc.a(iofwrite.o):在函数fwrite
中:对_Unwind_Resume
的引用未定义
我看到一些解决方案表明我应该链接使用-lgcc
,但是在我的电脑上没有找到这个库...
有人有主意吗?