#ifdef #endif C++

Previous topic - Next topic

mentalthink

Hola Compañeros, quería haceros una pregunta del pre-Procesador para C++, aunque supongo que en GLbasic será más o menos igual.
Code (glbasic) Select
void show_configuration()
{
std::cout <<
#ifdef _DEBUG
"debug"
#else
"release"
#endif
<< std::endl;
}


Estoy haciendo esté código en CodeBloks, y no me funciona, lo que no se es si yo estoy confundido con el funcionamiento que tiene que hacer, me explico:
Si yo le digo al IDE que compile en modo DEBUG, el programa sabe que está en DEBUG?¿, o tengo que asociarle algún valor como 1 o 0?¿.

Un saludo y gracias como siempre por vuestro tiempo. Saludotes.

hardyx

Nuevamente siento responder tarde.

CodeBlocks en Windows usa por defecto el compilador MINGW, que es un port de GCC. Este compilador creo que no define nada en modo debug, con lo cual tendrías que definirlo a mano en las "build properties" de Debug con la pestaña "#defines" poner _DEBUG por ejemplo. También puedes mirar las propiedades del compilador (CBlocks permite usar muchos compiladores), en la parte de build properties > compile options > #defines.

Estos defines te sonarán de Visual C++, pero GCC no define nada y depende de la implementación del sistema. GCC está implementado en muchos sistemas (Windows, Linux y todo tipo de aparatos).

mentalthink

Ok Hardyx gracias... Bueno estoy en Linux aunque GLBasic funciona muy bien en Wine.
Ya me miraré lo que me comentas del GCC que por aquí tengo un librico.
Gracias por la respuesta.