1

この方法でアセンブリファイルをコンパイルしましたnasm

$ nasm -f elf somefile.asm -o somefile.o

somefile.oその後、プログラムにリンクしたいgcc

$ gcc -m32 somefile.o -o someprogramm

ただし、ファイルをリンクすると、次のエラーが出力されます。

ld: warning: ignoring file somefile.o, file was built for unsupported file format which is 
not the architecture being linked (i386)
Undefined symbols for architecture i386:
  "_main", referenced from:
     start in crt1.10.6.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
4

2 に答える 2

1

問題は、Mac OS Xオブジェクト形式と互換性のない32ビットLinux(ELF)オブジェクトファイルを作成していることです。'-felf'を'-fmacho32'に切り替えてみてください。

于 2012-05-23T19:53:04.413 に答える