问题
In a large C++/Qt/QMake/qtcreator project I would like to perform some tests, but only when I am compiling with the debug flag.
Is there a way to tell g++ that some small parts of the code have to be compiled only in debug mode ?
回答1:
The standard way to do this is to depend on the macro NDEBUG, which is used by the macro assert() defined in <cassert>:
#ifdef NDEBUG
// release mode code
#else
// debug mode code
#endif
The opposite of #ifdef is #ifndef, and of course #else branches are optional.
If this macro doesn't work (for whatever reason), you
can try the macro
QT_NO_DEBUG, which Qt uses for a similar purpose withQ_ASSERT(); andshould fix it so that
NDEBUGis (un)defined correctly; it's required for<cassert>to work properly, and code you use may depend on it.
来源:https://stackoverflow.com/questions/22537251/how-to-obtain-debug-release-conditional-compiling-in-c-program