I want to create some context-sensitive macros. The macro
 #define LOG_WARNING(x) qWarning()().noquote().nospace() << x
works fine, it is located in file Macros.h. I want to define a macro, which does not print log messages when called from unit testing routine. So, I modified  like
#define LOG_INFO(x) if(!UNIT_TESTING) qInfo().noquote().nospace() << x
Since in this way the macro will depend on UNIT_TESTING, I provided in the same Macros.h
extern bool UNIT_TESTING;   // Whether in course of unit testing
However, the compilers tells
declaration does not declare anything [-fpermissive]
 extern bool UNIT_TESTING; // Whether in course of unit testing
        ^
At the same time, if the external is declared in the file from which Macros.h is included, it works fine. Do I wrong something?
 
    