Hallo!
Ich habe ein Kleines Problem. Und zwar habe ich versucht einen kleinen Objektorentierten Kernel nach TeeJay's Tutorial zu basteln und bin drauf gekommen das es nur mit g++, nicht aber mit gcc funktioniert. (zumindest bei mir) Soweit funktioniert das ganze auch. Erst bei Linker (ld) scheitert das ganze mit folgender Fehlermeldung:
Kernel/temp/ckernel.obj(.text+0x3d): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `__dso_handle'
Kernel/temp/ckernel.obj(.text+0x49): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `__cxa_atexit'
make: *** [all] Fehler 1
Tja, sieht so aus als w?rde das an der standard-libary liegen oder? (wegen dem atexit) Meine Commands sehen folgenderma?en aus:
g++ -nostdlib -nostdinc -fno-builtin -fno-rtti -fno-exceptions -c -Os -o Kernel/temp/ckernel.obj Kernel/C/kernel.c
g++ -nostdlib -nostdinc -fno-builtin -fno-rtti -fno-exceptions -c -Os -o Kernel/temp/video.obj Kernel/C/video.cpp
ld -T Kernel/link.ld -o Kernel/temp/c32kernel.bin
Mein Linker-Script:
OUTPUT_FORMAT("binary")
INPUT(Kernel/temp/kernel32.obj Kernel/temp/ckernel.obj Kernel/temp/video.obj)
ENTRY(start)
SECTIONS
{
.text 0x200 : {
code = .; _code = .; __code = .;
*(.text)
. = ALIGN(1);
}
.data : {
data = .; _data = .; __data = .;
*(.data)
. = ALIGN(1);
}
.bss :
{
bss = .; _bss = .; __bss = .;
*(.bss)
. = ALIGN(1);
}
end = .; _end = .; __end = .;
}
Ich denke Code ist un?tig oder? Wenn doch nicht kann ich ihn auch noch posten ich will nur nicht das ganze Forum zuspammen.
W?re nett wenn mir jemand helfen k?nnte.
Ich habe ein Kleines Problem. Und zwar habe ich versucht einen kleinen Objektorentierten Kernel nach TeeJay's Tutorial zu basteln und bin drauf gekommen das es nur mit g++, nicht aber mit gcc funktioniert. (zumindest bei mir) Soweit funktioniert das ganze auch. Erst bei Linker (ld) scheitert das ganze mit folgender Fehlermeldung:
Kernel/temp/ckernel.obj(.text+0x3d): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `__dso_handle'
Kernel/temp/ckernel.obj(.text+0x49): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `__cxa_atexit'
make: *** [all] Fehler 1
Tja, sieht so aus als w?rde das an der standard-libary liegen oder? (wegen dem atexit) Meine Commands sehen folgenderma?en aus:
g++ -nostdlib -nostdinc -fno-builtin -fno-rtti -fno-exceptions -c -Os -o Kernel/temp/ckernel.obj Kernel/C/kernel.c
g++ -nostdlib -nostdinc -fno-builtin -fno-rtti -fno-exceptions -c -Os -o Kernel/temp/video.obj Kernel/C/video.cpp
ld -T Kernel/link.ld -o Kernel/temp/c32kernel.bin
Mein Linker-Script:
OUTPUT_FORMAT("binary")
INPUT(Kernel/temp/kernel32.obj Kernel/temp/ckernel.obj Kernel/temp/video.obj)
ENTRY(start)
SECTIONS
{
.text 0x200 : {
code = .; _code = .; __code = .;
*(.text)
. = ALIGN(1);
}
.data : {
data = .; _data = .; __data = .;
*(.data)
. = ALIGN(1);
}
.bss :
{
bss = .; _bss = .; __bss = .;
*(.bss)
. = ALIGN(1);
}
end = .; _end = .; __end = .;
}
Ich denke Code ist un?tig oder? Wenn doch nicht kann ich ihn auch noch posten ich will nur nicht das ganze Forum zuspammen.
W?re nett wenn mir jemand helfen k?nnte.

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert
