Как создать программу на C, включающую точку входа в Mac OS X?
Я хочу построить:
start() {
/* exit system call */
asm("movl $1,%eax;"
"xorl %ebx,%ebx;"
"int $0x80"
);
}
но когда я бегу:
gcc -nostdlib min.c
Я всегда получаю:
ld: could not find entry point "start" (perhaps missing crt1.o)
collect2: ld returned 1 exit status
Еще одна попытка, которую я предпринял, просто чтобы посмотреть, что она делает, была запущена:
gcc -nostdlib -c min.c && otool -tV min.o
И выход был:
(__TEXT,__text) section
_start:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 leave
0000000000000005 ret
Так откуда взялось это подчеркивание перед функцией «старт»? Как предотвратить это? Или проще:
Как создать программу на C, включающую точку входа в Mac OS X?
Спасибо, CrazyChenz
syscall
с соответствующими номерами вызовов / регистры передачи аргументов для этого. - person Peter Cordes   schedule 20.02.2020