Bedingete Kompilierung
-
Hallo Gemeinde,
ich würde gerne Log-Meldungen im Debug Modus aus geben, jedoch nicht im Release.
derzeit mache ich das unabhängig von der Kompilierung.
#define _DEBUG_MODE #ifdef _DEBUG_MODE CLog::getInstance().write("test", APP_DEBUG); #endifKann ich das aber irgendwie von der Kompilierung abhängig? Also was ich brauche ist irgendwie eine Prüfung ob das Programm im Release oder im Debug Modus kompiliert wurde.
Danke.
so long
jd
-
Du kannst auf das
NDEBUG-Makro prüfen, das im Release-Modus definiert ist. Ich würde dir allerdings raten, das an einer zentralen Stelle zu regeln und nicht ständig Präprozessoranweisungen zwischen den Code platzieren.Beispiel:
#ifdef NDEBUG #define LOG(TEXT) // im Release-Modus leer definieren #else #define LOG(TEXT) std::clog << TEXT << std::endl #endifEs gibt auch noch das
_DEBUG-Makro, allerdings ist das nicht standardisiert.
-
Danke, das funktioniert.
Natürlich wird das an zentraler stelle gemacht.
so long
jd