Wenn das nicht hilft, musst du mal sagen, mit welchen Parametern du den Compiler und den Linker aufrufst.
1. nasm -f bin -o C:\Users\Toshiba\Desktop\ckernel\kernel16.bin C:\Users\Toshiba\Desktop\ckernel\kernel16.asm
2. nasm -f elf -o C:\Users\Toshiba\Desktop\ckernel\kernel32.obj C:\Users\Toshiba\Desktop\ckernel\kernel32.asm
3. gcc -ffreestanding -c -o C:\Users\Toshiba\Desktop\ckernel\ckernel.obj C:\Users\Toshiba\Desktop\ckernel\kernel.c
4. i586-elf-ld -T C:\Users\Toshiba\Desktop\ckernel\link.txt -o C:\Users\Toshiba\Desktop\ckernel\c32kernel.bin
Verwendest du zufällig Assembler im globalen Scope in der C-Datei?
Nein, tue ich nicht.
Ich glaube ich habe einen Fehler im Tutorial gefunden, denn "char *VideoMem = (char*)0xB8000;" war im kernel.c "char *VideoMem = (char*)0xA8000;" (bei der gedownloadeten Version).
Und weil ich das -Os entfernt habe, erscheint das hier "C:\Users\Toshiba\Desktop\ckernel\ckernel\ckernel.obj:kernel.c:(.text+0xa): undef
ined reference to `___main'" beim 4. Schritt
Mfg