headerfiles - wie/wo includen?



  • ich habe ein projekt(beispiel) mit den den dateien:

    main/main.cpp
    main/funkionen/strings.h
    main/grafik/system.h

    ich möchte von main.cpp auf system.h zugreifen und von strings.h auch auf system.h

    wie kann ich das am besten umsetzen ohne eine der dateien mehrfach existent zu haben?



  • indem du bei beiden einfach includierst ?

    brauchst nur eine
    #ifdef in system.h zu packen damits nur einmal ankludiert wird

    oder du packst es in die precompiles header, das find ich pers. am besten



  • Inkludiere die Header einfach überall dort, wo du sie benötigst. Und dann kannst du mit Include-Guards sicherstellen, daß sie nicht doppelt in der selben Übersetzungseinheit auftauchen.



  • wie kann ich denn über

    main/funkionen/strings.h

    auf

    main/grafik/system.h

    zugreifen 😕



  • Du willst "main/grafik/system.h" in "main/funkionen/strings.h" includen? Dann z.B. so:

    #include "../grafik/system.h"
    

    In VS (keine Ahnung ob und wie das beim g++ geht) könntest du auch in den Projekteinstellungen die Includeverzeichnisse anpassen für dein Projekt und darin den Pfad zu "main" (einschließlich main in der Angabe) angeben, dann könntest du dir das "../" im obigen Beispiel sparen und einfach "grafik/system.h" schreiben.

    Greetz



  • mit .. meinst du wahrscheinlich den vollständigen pfad aber den möchte ich nur sehr ungern angeben

    soweit ich weiß hat man ja über zwei gleich vertiefte ordner zueinander keinen zugriff ohne den ganzen pfad anzugeben

    was kann ich also machen?



  • ".." wird zum übergeordneten verzeichnis aufgelöst, das ist ein relativer pfad.

    was kann ich also machen?

    genau das, was Vellas geschrieben hat 😉



  • Mit der Option -I kannst Du dem Compiler sagen, wo er include-Dateien zu suchen hat. Du kannst die Option auch mehrfach übereben. Dann sucht der Compiler alle Verzeichnisse nach den entsprechenden Dateien durch.

    Tntnet



  • Lol, machs doch einfach so wie Vellas gesagt hat. Einfach Verzeichnisstruktur mitangeben! LOL


Anmelden zum Antworten