Autor Thema: ld: "cannot find object file"?  (Gelesen 7441 mal)

OS_3000

  • Beiträge: 53
    • Profil anzeigen
Gespeichert
« am: 31. May 2013, 23:44 »
Weil mir mit zunehmender "Größe" meines Betriebssystems der einfache Texteditor mir immer mehr zu umständlich wird, wollte ich heute mal Eclipse ausprobieren. Ich hab es geschafft die Umgebung passend einzurichten und die Sources richtig kompilieren zu lassen. Aber beim Linken kommt immer ein sehr seltsamer von mir nicht nachvollziehbarer Fehler "cannot find obj\init_S.o".
Bisher habe ich immer so gelinkt: (mit einer BAT)
i586-elf-ld -L "%GCC_PATH%\lib" -L "%GCC_PATH%\lib\gcc\i586-elf\%GCC_VERSION%" -T linkconf.ld -o obj\kernel.bin obj\*.o "%LIBGCC_FILE_NAME%" -Ttext=0x100000
In Eclipse sieht die Kommandozeile dann so aus:
Building target: kernel.bin
Invoking: Cross GCC Linker
i586-elf-ld -nodefaultlibs -nostdlib -static -L"C:\Programmordner\MinGW\OSprogramming\lib" -L"C:\Programmordner\MinGW\OSprogramming\lib\gcc\i586-elf\4.4.0" -Ttext=0x100000 -T "C:/Eigenes/Programmierung/Betriebssystem/System001\linkconf.ld" -o "kernel.bin"  ./stdlib/sysapi/api.o ./stdlib/sysapi/asm.o ./stdlib/sysapi/charconv.o ./stdlib/sysapi/console.o ./stdlib/sysapi/cpuid.o ./stdlib/sysapi/textio.o  ./stdlib/assert.o ./stdlib/errno.o ./stdlib/math.o ./stdlib/stdlib.o ./stdlib/string.o ./stdlib/time.o ./stdlib/uchar.o ./stdlib/wchar.o  ./kernel/api_intr.o ./kernel/com.o ./kernel/cpustate.o ./kernel/gdt.o ./kernel/intr.o ./kernel/lowlevelbeep.o ./kernel/lowlevelconsole.o ./kernel/lowleveltime.o ./kernel/mm.o ./kernel/mmp.o ./kernel/mmv.o ./kernel/pic.o ./kernel/process.o ./kernel/thread.o ./kernel/tss.o  ./init.o   -llibgcc.a
c:\Programmordner\MinGW\OSprogramming\bin\i586-elf-ld.exe: cannot find obj\init_S.o
make: *** [kernel.bin] Error 1


Weshalb sucht der Linker immer nach "init_S.o"?
Es gab vorher mal versehentlich eine so benannte Datei im Projekt, aber die ist schon lange gelöscht und sie taucht ja auch nicht in den Kommandozeilenparametern von Ld auf. Daher erschließt sich mir nicht ganz weshalb der Linker immer meint, er würde immer diese Datei brauchen.

Habt ihr eine Idee woher das kommen kann? Ich habe das Gefühl das ich ziemlich auf den Schlauch stehe.
« Letzte Änderung: 01. June 2013, 00:45 von OS_3000 »

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 01. June 2013, 11:02 »
Erwähnst du die Datei evtl. in linkconf.ld?
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

OS_3000

  • Beiträge: 53
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 01. June 2013, 11:58 »
Ja, das war es.  :-D
So einfach kann die Lösung sein.  :roll:
Vielen Dank dafür.

 

Einloggen