Linker Problem



  • Hallo,
    ich wollte mir ein kleines OS schreiben und ich hatte vor einigen Tagen schon Probleme mit dem Kernel gehabt.
    Jetzt funktioniert es, jedoch wenn ich mehrere Sourcefiles habe, weiß ich nicht, wie ich es mit einander linken soll.

    So habe ich es immer gemacht:

    nasm -f bin -o %BINDIR%boot.bin %BINDIR%boot.asm
    i586-elf-gcc -ffreestanding -I %BINDIR% -c %BINDIR%kernel.cpp -o %BINDIR%kernel.o
    i586-elf-gcc -ffreestanding -I %BINDIR% -c %BINDIR%ACPI.cpp -o %BINDIR%ACPI.o
    i586-elf-gcc -ffreestanding -I %BINDIR% -c %BINDIR%System.cpp -o %BINDIR%System.o
    i586-elf-ld -T %BINDIR%link.ld -o kernel.bin ACPI.o System.o
    copy boot.bin + kernel.bin OS.bin

    Jedoch findet er den Kernel nicht, aber wenn ich ACPI und System weglasse funktioniert es. Ich weis nicht, wie ich es miteinander verlinken soll und es zum laufen bringen soll.

    Mfg
    C++-Coder

    Edit: Hab's doch noch geschafft, denn ich habe noch das hier gemacht "i586-elf-ld -T %BINDIR%System.ld -o System.sys ACPI.o System.o" und dann noch "copy boot.bin + kernel.bin + System.sys OS.bin"


Anmelden zum Antworten