I am trying to learn the build using NASM, pcasm-book.pdf from Dr. Paul Carter - http://www.drpaulcarter.com/pcasm/ - on my Mac OS X Snow Leopard.
I am trying to link the previous compiled C pattern with asm patterns:
gcc first.o driver.c asm_io.o -o first
But he returns it:
driver.c:3: warning: 'cdecl' attribute ignored ld: warning: in first.o, **file is not of required architecture** ld: warning: in asm_io.o, file is not of required architecture Undefined symbols: "_asm_main", referenced from: _main in ccjLqYJn.o ld: symbol(s) not found
I use the Mach-o format to compile asm samples, and I had no errors:
nasm -f macho **first.asm** nasm -f macho asm_io.asm
If I try to use only gcc -c in the driver.c file, using ld to link all the object files, ld does not refer to format.o format.
ld -o first asm_io.o first.o driver.o
It returns:
ld: warning: in driver.o, file is not of required architecture Undefined symbols: "_putchar", referenced from: print_char in asm_io.o print_nl in asm_io.o "_printf", referenced from: print_int in asm_io.o print_string in asm_io.o push_of in asm_io.o sub_dump_stack in asm_io.o stack_line_loop in asm_io.o sub_dump_mem in asm_io.o mem_outer_loop in asm_io.o mem_hex_loop in asm_io.o sub_dump_math in asm_io.o tag_loop in asm_io.o print_real in asm_io.o invalid_st in asm_io.o "_scanf", referenced from: read_int in asm_io.o "_getchar", referenced from: read_char in asm_io.o ld: symbol(s) not found for inferred architecture i386
What is the problem? What is the correct format for working with gcc and NASM in OS X?
Thanks. Daniel Koch
source share