非常に基本的な x86 コードを記述し、C プログラムで呼び出そうとしています。OSX 10.8.2 を実行しています。ここに私が持っているコードがあります:
start.c:
#include <stdio.h>
void _main(); // inform the compiler that Main is an external function
int main(int argc, char **argv) {
_main();
return 0;
}
code.s
.text
.globl _main
_main:
ret
次のコマンドを実行して、コンパイルを試みます。
gcc -c -o code.o code.s
gcc -c -o start.o start.c
gcc -o start start.o code.o
最後のコマンドの後に次の出力を返します。
Undefined symbols for architecture x86_64:
"__main", referenced from:
_main in start.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
コンパイラ呼び出しに何か不足していますか? 何かを更新/別のものをインストールする必要がありますか? これは非常に一般的な出力であるため、決定的な答えはどこにも見つかりません。ありがとう!