verständisfrage zu header/libarys und linkern



  • hallo,

    ich kenne mich wenig mit c++ aus und möchte nun ein grösseres Projekt starten. Bis jetzt habe ich legiglich mit ein-datein programmen gearbeitet (natürlich mit standard includes). Nun brauch ich mehr Verständniss vom Zusammenhang zwischen header, linker, libarys und externer funktonen. Als nästes ist für mich wichtig zu wissen wie ich damit umgehe.
    Ich frage hier weil eine grobe Übersicht brauche und mich nicht durch ein kompliziertes Buch durch welzen will.

    mein anwendungsbeispiel:
    aus dem Bereich elektrotechnik. Ich will ein LCD ansteuern, dafür habe ich die vorgefährtige Funktionen so das gleich damit gearbeitet werden kann. Die Hardware ist vorhanden. Es geht nur um den umgang der mitgelieferten Files.
    Ich habe einen header in dem meine definitionen vordefiniert werden (sagt man prototypen definition?)
    in meinem bsp lcd.h
    dann eine libary
    lcd.lib
    dann mehrere files (nicht von mir geschrieben)
    lcdfunktion1.c lcdfunktion2.c lcdausgabe.c usw welche sich alle die lcd.h included haben
    dazu mein Hauptprogramm welches einliest, rechnet und dann irgendwann etwas auf dem lcd ausgeben soll.

    wenn ich nun etwas in der header ändere, dann muss doch zwangsläufig die ganze Lib + funktionen neukompiliert werden?!?
    ich bin etwas ratsam und nicht sonderlich erfahren in c++
    wenn mir jemand weiterhelfen kann oder links zu dem thema hat wär ich sehr dankbar.



  • Standard schreibt man mit "d". 😃



  • tja, ich bin auch etwas ratsam was du eigentlich möchtest.

    So, grundsätzlich gilt, das Quellcode von Drittanbieter nicht angetastet werden sollten, denn beim nächsten Update klappt es mit dem Nachbarn nicht mehr. Manchmal macht man es trotzdem. Na ja, dann hat halt man wieder Arbeit.



  • Tja, muß leider sagen, das Deine Frage nicht sehr deutlich ist. Im ersten Abschnitt war ich der Meinung, du willst wissen, was und wie das Linken funktioniert, und dann kommst du mit irgendwelchen Libs, wo du dich anscheinend schon mit auskennst.

    Prinzipiell kann man sagen, das es so funktioniert (Crashkurs):

    *.cpp + *.hpp -> Compiler erzeugt -> *.obj -> Linker linkt objs mit libs -> EXE

    Naja, im Prinzip wird das aber in jedem guten C++-Tutorial und vorallem eher in einem Compiler-Benutzerhandbuch beschrieben! Denn letztendlich ist das immer Compiler-Tool abhängig. Klar ist, das sich alle Compiler an ein Konzept halten, aber z.B. die Befehle usw. sind bei jedem Compiler und Linker anders. IDEs bringen dann sogar meistens eine Vereinfachung mit, wo man alles in irgendwelchen Options-Dialogen eintragen kann.


Anmelden zum Antworten