Variablen in include anweisung



  • Hallöchen,

    bräuchte mal eure Hilfe, da meine Internet-Recherchen nichts wirklich hilfreiches gebracht haben. 😕

    Ich habe ziemlich viele Include anweisungen zu machen, allerdings sind die Headerfiles dazu in mehreren Ordnern verstreut. Ich weis, dass ich Includeanweisungen auch so schreiben kann:

    #define _MyHeader_ "/home/me/Headerfiles/MyHeader.h"
        #include _MyHeader_
    

    Aber wie kann ich Variablen und Pfad in einem Include schreiben, bzw. geht das überhaupt?

    Beispiel:

    #define _Home_ "/home/me"
        #include _Home_/Headerfiles/MyHeader.h
    

    Wäre echt supi, wenn mir da jemand weiter Helfen könnte. 😃

    lg Honey



  • Honey schrieb:

    #define _MyHeader_ "/home/me/Headerfiles/MyHeader.h"
        #include _MyHeader_
    

    Aber wie kann ich Variablen und Pfad in einem Include schreiben, bzw. geht das überhaupt?

    sollte gehen. manche compiler wolles das # einer präprozzi-anweisung immer am anfang einer neuen zeile haben. falls du windoofs benutzt, müsstest du vielleicht statt der / zwei \ einsetzen. zusammenbasteln von strings für makros geht damit: http://www-zeuthen.desy.de/dv/documentation/unixguide/infohtml/cpp/cpp_16.html
    🙂



  • Hallo fricky,

    leider hilft mir das nicht unbedingt weiter, da es sich um mehrere unterschiedliche Include anweisungen handelt.

    also

    #define Home_1 "/home/me"
    #define Home_2 "/home/kollege"
    //usw.
    #include Home_1/MyHeader.h
    #include Home_2/HisHeader.h
    //usw.
    

    es sind immer wieder verschiedene "Haupt"-Verzeichnisse mit verschiedenen "Unter"-Verzeichnissen.

    Ich kann sie aber nicht statisch von hand ändern (also

    #include "/home/me/MyHeader.h"
    

    ) weil mein kollege sie sonst bei sich wieder zurück ändern muss (nach

    #include "/home/kollege/HisHeader.h"
    

    )

    Und ausserdem wären es extrem viele, die ich da ändern müsste.

    lg Honey



  • ^^ach so. ich weiss jetzt nicht, ob man für #include den string-zusammenschiebeoperator ## benutzen kann, aber wie wär's wenn du in den projekt-settings der IDE bei dir einen zweiten suchpfand für .h-files einstellst, und dein mitarbeiter einen anderen?
    oder, wenn's im code sein soll

    //#define ICH // <--- diese zeile einkommentieren für 'dich' 
    
    #ifdef ICH
    #include "ich/file1.h"
    #include "ich/file2.h"
    #include "ich/..."
    #else
    #include "wer_anders/file1.h"
    #include "wer_anders/file2.h"
    #include "wer_anders/..."
    #endif
    

    🙂


Anmelden zum Antworten