c-funktion in assembler aufrufen

Hallo ich habe ein Problem. Und zwar möchte ich aus einem Assemblercode eine C-Funktion aufrufen. Jedoch bekomme ich folgende Fehlermeldung:
ks.o:ks.o:(.text+0x1): undefined reference to `_main'

Ich benutze folgendes Tutorial:
http://www.osdever.net/tutorials/basickernel.php
Dabei habe ich erst einmal die anderen Funktionen weggelassen (außer k_main habe ich in main umbenannt)

Kompilierung( einfach nur für den besseren Überblick):
Code:
GCC?=gcc
NASM?=nasm
LD?=ld

kernel.bin: link.ld ks.o kernel.o
        $(LD) -T link.ld -o kernel.bin ks.o kernel.o
kernel.o: kernel.c
        $(GCC) -c kernel.c -o kernel.o
ks.o:   kernel_start.asm
        $(NASM) -f aout kernel_start.asm -o ks.o
Wisst ihr was mein Problem ist?
Danke im vorraus :)

EDIT:
Die Funktion die aufgerufen werden soll muss in beiden Quelltexten gleich heißen. In diesem Fall
k_main k_main
oder
_k_main _k_main
 
Ich gehe mal davon aus, dass du Linux benutzt. Dann musst du den Unterstrich vor k_main, bzw main weglassen.
... Unless you link this to an ELF file. ELF does not need the underscore.

mfg, loose
 
Zurück
Oben