私は、IntelアーキテクチャのLinuxアセンブリで小さなプログラムをコンパイルしようとしています。私はCライブラリのいくつかの機能を使いたいがリンクしていない。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
してコンパイルしてる、すべてが正常になります。
(.textセクションは+ 0x1b8):未定義の参照
_Unwind_Resume' /usr/lib32/libc.a(iofclose.o):(.eh_frame+0x167): undefined reference to
に__gcc_personality_v0' /usr/lib32/libc.a(iofflushそして私はld -static -m elf_i386 -o a.out output.o -lc
とリンクしていたとき、私はこれらのエラーを得ました.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):機能中 `fw儀式 ':
(私は別のエラーをしましたが、私が思うに、問題を参照してくださいするのに十分である)
私はいくつかのソリューションは、私が-lgccとリンクすべきであることを示しているが、自分のコンピュータ上のライブラリを見てが見つかりません...
誰かがアイデアを持っていますか?
ld – Lyke