sirve que para ifdef endif directivas c++ c debugging gcc

que - C++ determina si compila con símbolos de depuración sin definir un símbolo de preprocesador



ifdef arduino (2)

Creo que la respuesta que estaba buscando era esencialmente lo que Adam publicó como comentario, que es:

El trabajo del compilador no incluye preprocesamiento y, de hecho, el compilador bloqueará cualquier conmutador de preprocesador que no maneje el preprocesador que ingrese en el código.

Entonces, debido a que la forma de código de bifurcación debe aprovechar al preprocesador, significa que para cuando el compilador obtiene un código, ya es uno o el otro (código de depuración o código de versión), entonces me es imposible hacer lo que mi pregunta me pide esta etapa (después del preprocesador).

Por lo tanto, es una consecuencia directa de que el preprocesador esté diseñado como un proceso separado para alimentar el código.

He estado usando algo como esto:

int main(int argc, char *argv[]) { #ifdef DEBUG printf("RUNNING DEBUG BUILD"); #else printf("Running... this is a release build."); #endif ...

Sin embargo, esto requiere que compile con -DDEBUG para la compilación de depuración. ¿GCC me da alguna forma de determinar cuándo estoy compilando con símbolos de depuración (indicador -g) como definir su propia macro preprocesador que puedo verificar?