В Windows вы, вероятно, использовали Visual Studio, которая автоматически определяет символ _DEBUG при сборке решения в режиме отладки.Символы обычно определяются при вызове компилятора, и затем они будут использоваться на этапе предварительной обработки.
Например, если вы используете GCC через командную строку и хотите повторно использовать символ _DEBUG, потому чтовы обрабатываете уже установленную кодовую базу, вы можете определить ее с помощью параметра -D через командную строку.
#include <iostream>
int main() {
std::cout << "Hello world!\n";
#ifdef _DEBUG
std::cout << "But also Hello Stack Overflow!\n";
#endif
return 0;
}
Скомпилировать это с помощью следующей командной строки
g++ -D _DEBUG define.cpp
даст следующий результат
Hello world!
But also Hello Stack Overflow!
Лучшим вариантом для затмения cdt может быть изменение свойств путей и символов в свойствах проекта.