Я пытаюсь собрать простой Hello World, который прекрасно работал в предыдущей версии macOS:
global start
section .text
start: mov rax, 0x02000004
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 0x02000001
xor rdi, rdi
syscall
section .data
msg: db "Hello world!", 10
Затем я использую nasm
и ld
, как я делал раньше:
$ nasm -f macho64 hello.asm
$ ld hello.o -o hello
Но ld
выдает мне следующую ошибку:
ld: warning: No version-min specified on command line
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for inferred architecture x86_64
Я попытался переключить start
на _main
, но получил следующее:
ld: warning: No version-min specified on command line
ld: dynamic main executables must link with libSystem.dylib for inferred architecture x86_64
Даже не знаю, что это может значить.