Präprozessor



  • Hallo Forum,

    ich habe ein Projekt das auf mehrere Weise kompiliert werden soll.
    Wie kann ich dieses machen?

    #ifndef (TEST_ENV && LIB_ENV)
    // Kompiliere als DLL
    #endif

    #ifndef (TEST_ENV && DLL_ENV)
    // Kompiliere als Lib
    #endif

    #ifndef (DLL_ENV && LIB_ENV)
    // Kompiliere als Exe zum Testen
    #endif

    Muß ich mir jetzt ein kopliziert verschachteltes Konstrukt ausdenken oder ist die Präprzessor Sprache mächtig genug?



  • HAllo,

    vielleicht gehts du besser eine Ebene höher und machst das in den Makefiles.



  • SeppSchrot schrieb:

    vielleicht gehts du besser eine Ebene höher und machst das in den Makefiles.

    oder, besser noch, mit einer IDE. die meisten können projekteinstellungen 'vererben'.
    🙂



  • Ich hatte mich etwas undeutig ausgedrückt. Durch die #ifdefs wollte ich bestimmte Funktionen ausklammern. Die Test Exe enthält alles, die Lib benötigt bestimmte Funktionen der DLL nicht und bei der Lib entfallen die DLL spezifischen Sachen. Mir ging es nicht darum dem Kompiler zu sagen: Jetzt kompilierst Du es als DLL.

    Ich habe es jetzt so gemacht:

    #ifdef ENV_DLL
    #ifndef ENV_LIB
    #ifndef ENV_EXE
    #inlude "DLLInterface.h"
    #endif
    ...
    


  • #if !defined(TEST_ENV) && !defined(LIB_ENV)
    //bla bla
    #endif
    

Anmelden zum Antworten