Moin
ich habe ein problem mit meinem C++ kernel, den ich mit Grub laden möchte.
LD gibt mir folgendes aus:
ist der aus dem Wikiartikel C++ Kernel mit Grub.
und die Startup.cpp sieht folgendermaßen aus:
Weiß einer von euch wo der fehler liegt?
Programm Noob
ich habe ein problem mit meinem C++ kernel, den ich mit Grub laden möchte.
LD gibt mir folgendes aus:
Code: [Auswählen]
.\obj\asmkernel.o: In function `loader':
.\src\asmkernel.asm:(.text+0x14): undefined reference to `initialiseConstructors'
.\src\asmkernel.asm:(.text+0x19): undefined reference to `main'
.\obj\startup.o: In function `__Z22initialiseConstructorsv':
startup.cpp:(.text+0x9): undefined reference to `_start_ctors'
startup.cpp:(.text+0x1d): undefined reference to `_end_ctors'
.\obj\startup.o:(.eh_frame+0x12): undefined reference to `___gxx_personality_v0'
.\obj\video.o:(.eh_frame+0x12): undefined reference to `___gxx_personality_v0'
.\obj\kernel.o: In function `_main':
kernel.cpp:(.text+0x92): undefined reference to `__Unwind_Resume'
.\obj\kernel.o:(.eh_frame+0x13): undefined reference to `___gxx_personality_v0'
ist der aus dem Wikiartikel C++ Kernel mit Grub.
und die Startup.cpp sieht folgendermaßen aus:
Code: [Auswählen]
typedef void (*constructor)();
// Im Linkerskript definiert
extern "C" constructor start_ctors;
extern "C" constructor end_ctors;
extern "C" void initializeConstructors();
// Ruft die Konstruktoren für globale/statische Objekte auf
void initialiseConstructors()
{
for (constructor* i = &start_ctors;i != &end_ctors;++i)
(*i)();
}
Weiß einer von euch wo der fehler liegt?
Programm Noob

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken
Gespeichert



