在mac os上编译nasm中的汇编程序

Ale*_*wka 3 macos assembly gcc nasm

所以,我在asm上写了一些指令,然后编译它们.

nasm -f macho test.asm
Run Code Online (Sandbox Code Playgroud)

现在,nasm生成obj文件test.o

gcc test.o 
Run Code Online (Sandbox Code Playgroud)

返回下一个错误:

  • ld:警告:忽略文件test.o,文件是为不支持的文件格式构建的,而不是链接的体系结构(x86_64)
  • 体系结构x86_64的未定义符号:"_ main",引自:
  • 从crt1.10.6.o ld开始:找不到架构x86_64的符号collect2:ld返回1退出状态

在gcc行中,我使用-arch i386(x86_64),返回相同的错误.

有人可以帮忙吗?:)

the*_*mil 6

这些命令对我有用(OS X 10.12 x64):

nasm -f macho test.asm -DDARWIN
ld -o test test.o -arch i386 -lc -no_pie -macosx_version_min 10.12 -lSystem
Run Code Online (Sandbox Code Playgroud)