Autor Thema: Eigene stdlibc einbinden  (Gelesen 2993 mal)

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« am: 13. February 2009, 19:30 »
Nabend,

ich habe mir ein paar stdlibc-Methoden geschrieben und wollte diese in meinen Kernel einbinden.
Die kompilierten Files habe ich in einem getrennten Verzeichnis.
Wie bekomme ich den Linker nun dazu, dass er meine verwendet und nicht die von Linux?

Danke für eure Hilfe.

Gruß
rizor
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

jgraef

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 13. February 2009, 20:11 »
1) Die Objektdateien deiner stdlibc zusammenpacken:
$ ar rs libc.a *.o
Mit ar packst du deine Objektdateien zu einer Lib (libc.a) zusammen.

2) Kernel kompilieren
$ gcc <deine ganzen optionen> -L <verzeichnis indem libc.a liegt> -lc
Das -L bewirkt, dass gcc auch in dem angegebenen Verzeichnis nach Libs sucht. Mit -lc wird die Library libc.a eingebunden.

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 13. February 2009, 20:13 »
Super. Danke.
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 13. February 2009, 20:40 »
Achso...
Ich habe noch eine andere Frage.
ist es möglich, dass man dem gcc zwei verschiedene Include-Pfade anzugeben?
Ich muss doch einmal einen Pfad zu meiner libc und einen anderen in mein kernel-include packen.
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 13. February 2009, 20:55 »
Einfach zweimal -I angeben.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 13. February 2009, 20:56 »
Danke.
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

 

Einloggen