eigene compiler flags?



  • Hallo,

    ich habe bisher noch nie eigene compiler flags benutzt. Wie mache ich das.
    Ich weiß dass ich code durch #if #elsif und #else einbauen kann aber wie compilier ich dann im richtigen mode?
    Wie muss ich mein makefile anpassen?

    Danke



  • also ich dachte man kann die variable die für die bedingte kompilierung verantwortlich ist aus dem makefile heraus setzen? Geht das nicht? Kann ich die nur in meinem Programm über #define setzen?



  • bei den meisten compiler sollte -Dmeinmacroname=meinmacro bzw. -Dmeinmacroname als parameter das machen, was du willst.



  • Hmm...

    also ich versuche das so:

    #ifdef myvar
         //tue was
    #else
         // tue was anderes
    #endif
    

    und im makefile dann als compilerflag -Dmyvar=0 oder -Dmyvar=1 , aber beides läuft bei mir nur in den if-zweig ???



  • is ja auch richtig. du prüfst, ob das makro definiert ist. das ist unabhängig davon, ob es 1 oder 0 ist. will heißen: wenn du -Dmeinmacro benutzt, ist meinmacro danach definiert.
    wenn du das mit 1 und 0 machen willst, geht das so:

    #if myvar == 1
     [...]//code für myvar == 1
    #elif myvar == 0
     [...]
    #else
    #error "murks"
    #endif
    

Anmelden zum Antworten