Objektdatei kann mit ld - Mac OS X nicht verknüpft werden

/*********
exit.asm
*/

[SECTION .text]

global _start


_start:
xor eax, eax
xor ebx, ebx
mov al, 1
int 0x80

//****************************

Zuerst habe ich nasm -f elf exit.asm verwendet, um die Objektdatei zu generieren.

dann habe ich den folgenden "ld" -Befehl auf meinem Mac OS X 10.7 ausgeführt, er hat diese Ausgaben und Warnung, ich habe versucht, ihn auf meinem 32-Bit-Linux-Rechner auszuführen, alles lief einwandfrei, Könnten Sie bitte erklären, warum der nicht funktioniert? Linker funktionieren auf meinem Mac?

Vielen Dank!

Alfred says: ld -o exiter exit.o
ld: warning: -arch not specified
ld: warning: -macosx_version_min not specified, assuming 10.7
ld: warning: ignoring file exit.o, file was built for unsupported file format ( 0x7f 0x45      0x4c 0x46 0x 1 0x 1 0x 1 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 ) which is not the   architecture being linked (x86_64): exit.o
Undefined symbols for architecture x86_64:
  "start", referenced from:
    implicit entry/start for main executable
ld: symbol(s) not found for inferred architecture x86_64

Nachdem ich meinen Bogen und meine Version angegeben habe, habe ich:

Alfred says: ld -arch x86_64 -macosx_version_min 10.7 -o exiter exit.o
ld: warning: ignoring file exit.o, file was built for unsupported file format ( 0x7f 0x45     0x4c 0x46 0x 1 0x 1 0x 1 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 ) which is not the   architecture being linked (x86_64): exit.o
 Undefined symbols for architecture x86_64:
 "start", referenced from:
    implicit entry/start for main executable
 ld: symbol(s) not found for architecture x86_64

Antworten auf die Frage(4)

Ihre Antwort auf die Frage