Search code examples
gccassemblynasmldi386

nasm and gcc: 32 bit linking failed (64 bit Mac OS X)


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

Solution

  • 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.