He estado usando algo como esto:C++ determinar si compilar con símbolos de depuración sin definir un símbolo de preprocesador
int main(int argc, char *argv[])
{
#ifdef DEBUG
printf("RUNNING DEBUG BUILD");
#else
printf("Running... this is a release build.");
#endif
...
Sin embargo, esto me obliga a compilar con -DDEBUG para la versió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?
No lo sé con certeza, pero lo dudo mucho. En teoría, el preprocesamiento podría hacerse en un pase separado con el comando 'cpp' antes de la compilación, y el preprocesador no tiene noción de símbolos de depuración o la opción' -g'. –