アセンブリコードの接続の問題

アセンブリコードの接続の問題

これは私のアセンブリコードです。

.section .data
    mystring: .asciz    "Hello world\n"

.section .text
.globl  _start
_start:

pushl   $0
pushl   $mystring
call    printf

pushl   $0
call    exit

私の64ビットUbuntuコンピュータでこのコードを組み合わせて接続しようとしています。32ビットモードで。このコードは、次のコマンドを使用して正常に組み立てられました。

as -32 demo.s -o demo.o

しかし、ldコマンドで接続しようとすると、次のようになります。

ld -m elf_i386 -s demo.o -o demo -lc

次のエラーが発生します。

ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.so when searching for -lc
ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.a when searching for -lc
ld: cannot find -lc: No such file or directory
ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.so when searching for -lc

この問題についてどうすればよいですか?

libc.so私の場所は次のとおりです。

libcjson.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcjson.so.1
    libc.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libc.so.6
    libc.so.6 (libc6) => /lib/i386-linux-gnu/libc.so.6

関連情報