Wozu die Obejktdatei??



  • Hi Leute,
    also seit ca. 1 Woche lerne ich nun C und habe schon einiges gelernt, aber auch einige Fragen:

    Hierbei geht es u.a. um die Objektdatei. Wenn ich in meinem C-Programm mein Script speichere, erstelle ich eine Textdatei, eine Objektdatei und eine exe-Datei.

    Wozu das erste und das letzt ist, ist mir schon irgendwo klar.

    Die Textdatei ist dafür da, dass ich mein Script immer wieder verändern. Wenn ich dies in meinem C-Programm verändere und speichere, werden dessen Werte auch für die Exe-Datei übernommen.

    Die exe-Datei ist ja die Datei, welche für das Betriebssystem interessant ist. Die exe-Datei ist, was ich bisher erufhr, die Datei, die dafür sorgt, dass der Programmcode so übersetzt wurde, dass es das Betriebssystem versteht.

    Jetzt stellt sich, sofern das dort oben auch alles richtig ist und ich es richtig verstand, die Frage, wozu die Objektdatei ist. Ich weiß nur, das das Betriebssystem den Pogrammcode in der Obejktdatei nicht versteht und es daraufhin die exe-Datei erstellt, aber wozu bräuchte man es dann??

    würde es auch gerne nur kurz wissen, weil bin ja Anfänger und möchte ja so ungefääähr wissen, was ich da für Dateien immer erstelle. :=)

    Danke schön schon einmal! 🙂
    MFG Dramex



  • die obj-datei ist das, was der compiler ausspuckt. aus jeder .c-datei wird im normalfall eine .o datei erzeugt. sie enthalten den generierten maschinencode + informationen, damit der linker daraus eine .exe machen kann
    🙂



  • Das machen gar nicht alle Compiler mit object files. ZB mein AIX-Compiler nicht.

    Irgendeiner von den Demigods (Dennis? Stallman?) hat vor langer Zeit bei einem frühen C-Compiler dieses Konzept erfunden. Es hat sich als günstig erwiesen, weil es die Portierbarkeit der Compiler fördert. An dem Teil, der das object file erzeugt, muss man nämlich bei einer Portierung fast nichts ändern.

    EDIT:
    Wahrscheinlich war's Ken Thompson. Siehe Kaptiel 10.0.



  • Es giebt mehrere Gründe für object Dateien.

    1. es ermöglicht den Compiler die seperate kompilation von Quellcode.
    wichtig damit merere Programmieren an einen Anwendung arbeiten können.

    2. es giebt nicht nur den c Compiler sondern
    auch andere z.B. Assembler, cpp, D ... und diese können auch object Dateien
    erstellen. ein Linker kann alle diese .obj Dateien, die von diesen
    verschiedenen Sprachen erstellt worden sind, zusammen binden und eine .exe
    Datei erstellen.

    ich denke das sind die wichtigsten Gründe.


Log in to reply