Tengo un programa en C++ que se ejecuta en un sistema integrado. Cuando el cliente encuentra un problema, me envía un archivo de registro. Y sería genial ver exactamente cuándo se construyó el binario en el registro. Por lo tanto, actualmente utilizo este sencillo pero muy eficaz método:¿Cómo implemento una funcionalidad similar a linux/proc/version en un programa de C++?
...
const std::string APP_BUILD = "2012.01.17.18:28";
int main()
{
std::cout << "Was built: " << APP_BUILT << std::endl;
}
Lo que me gustaría hacer es fijar APP_BUILD automáticamente durante la compilación. Sé que Linux tiene una variable/proc/version que se puede leer para determinar el tiempo de compilación. Mis lecturas
cat /proc/version
Linux version 2.6.38-13-generic ([email protected]) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)) #53-Ubuntu SMP Mon Nov 28 19:33:45 UTC 2011
¿Se puede hacer esto? (Estoy construyendo mi aplicación en Linux).
Compruebe las [macros predefinidas] de GCC (http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html), algunos datos que desea se encuentran allí. –
Si está utilizando algún sistema de control de versiones (y debería), probablemente también desee insertar una cadena que identifique de manera única la versión en particular. –
Sí, estoy usando Mercurial. ¿Hay una manera de hacer eso? –