Reputation: 14792
I've just compiled a assembley file with nasm
this way:
$ nasm -f elf somefile.asm -o somefile.o
After that I want to link somefile.o
to a programm with gcc
$ gcc -m32 somefile.o -o someprogramm
But linking the file prints the following error:
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
Upvotes: 1
Views: 1993
Reputation: 14792
After a time I decided to use Linux for this kind of programms, because it has more flexibility. You can use Linux on a virtual machine like Virtual Box.
Upvotes: 1
Reputation: 1649
The problem you're having is that you're creating a 32-bit Linux(ELF) object file which isn't compatible with the Mac OS X object format. Try switching '-f elf' to '-f macho32'.
Upvotes: 1