64ビットシステムでNASMとGCCを使用して32ビットコードをアセンブルしようとしています。64ビットシステム上で32ビットコードをリンクするcrtn.oが見つかりません
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: ld returned 1 exit status
私はUbuntuの11.10を実行している、と私はチェックして、私はlibcのがインストールされているかなり確信している:私は、次の2つのコマンド
nasm -f elf32 -g -F stabs coc.asm
gcc -m32 -o coc coc.o
NASMは罰金を行うように見えますが、LDは文句を使用しています。
可能重複libに適切な32ビットを取得するために
gcc-multilib
をインストールする必要があります。http://stackoverflow.com/questions/6329887/compiling-problems-([コンパイルの問題をcrt1.o初見つけることができません] can not-find-crt1-o) – user2284570