Я пытаюсь собрать небольшую программу в сборке Linux на архитектуре Intel.Я хочу использовать некоторые функции библиотеки 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): undefined reference
to
__ gcc_personality_v0 '/ usr /lib32 / libc.a (iofflush.o): в функции fflush': (.text+0xd7): undefined reference to
_Unwind_Resume '/usr/lib32/libc.a(iofflush.o):(.eh_frame+0xdf): неопределенная ссылка на __gcc_personality_v0' /usr/lib32/libc.a(iofputs.o): In function
fputs': (.text + 0x108): неопределенная ссылка на _Unwind_Resume'
/usr/lib32/libc.a(iofputs.o):(.eh_frame+0xdf): undefined reference to
__ gcc_personality_v0 '/usr/lib32/libc.a(iofwrite.o): в функции `fwrite':
(есть другие ошибки, номне кажется, достаточно увидеть проблему)
Я видел некоторые решения, указывающие на то, что я должен связываться с -lgcc, но на моем компьютере библиотека не найдена ...
У кого-то естьидея ?