Bei Verwendung von ld zum Verknüpfen undefinierter Verweis auf '__main'

/* test.c */

void func1()
{

}

int main()
{
   func1();
}

Hallo, ich mache Kernel-Code mit C. Aber ich habe den obigen Code getestet, um zu wissen, wie man C-Kernel-Code erstellt. Unter Befehl ist, was ich gab, um aufzufordern. Ich verwende MinGW unter Windows 8.1.

gcc -c -m32 test.c
ld -o test -Ttext 0x00 -e _main test.o

Aber dieser Fehler ist von ld aufgetreten.

test.o:test.c:(.text+0x7): undefined reference to `__main'

So habe ich anders probiert. füge -nostdlib und --freestanding option zu gcc hinzu. Das Ergebnis war jedoch dasselbe. Ist die Hauptfunktion in CRT0? Was soll ich tun, um dieses Problem zu lösen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage