Ho un programma C++ che gira su un sistema embedded. Quando il cliente incontra un problema, mi invia un file di registro. E sarebbe bello vedere esattamente quando il binario è stato compilato nel registro. Quindi, attualmente io uso questo semplice ma molto inefficace metodo:come implementare funzionalità simili a linux/proc/version in un programma C++?
...
const std::string APP_BUILD = "2012.01.17.18:28";
int main()
{
std::cout << "Was built: " << APP_BUILT << std::endl;
}
Quello che vorrei fare è impostare APP_BUILD automaticamente durante la compilazione. So che Linux ha una variabile/proc/version che può essere letta per determinare il tempo di costruzione. Le mie letture
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
Questo può essere fatto? (Sto costruendo la mia app in Linux).
Controllare i GCC [macro predefinite] (http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html), alcuni dati che si desidera vengano trovati lì. –
Se si utilizza un sistema di controllo della versione (e si dovrebbe), probabilmente si desidera incorporare anche una stringa che identifichi in modo univoco la versione specifica. –
Sì, sto usando Mercurial. C'è un modo per farlo? –