0
你如何構建一個包含Mac OS X入口點的C程序?如何構建包含Mac OS X入口點的C程序?
我想建立:
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
所以「開始」功能前從何從底線?我如何防止這種情況發生?或者更簡單:
如何構建包含Mac OS X入口點的C程序?
感謝, CrazyChenz
_start可能是一個錯位的名字。在創建開始之前,請注意,有很多預處理必須繼續,否則各種問題都會中斷。要了解符號的概念,您必須定義try nm crt1.o. gcc -e main使「main」成爲入口點而不是開始。你可以用這種方式定義你想要的任何功能。我不知道如何爲Xcode設置該選項。別人可能會。 – 2010-12-04 15:16:35