设置软件版本信息
#include <stdio.h>
#define REAL_STR_DEF(s) #s
#define STR(s) REAL_STR_DEF(s)
const char* soft_version()
{
#if defined(VERSION) && defined(DEV_TYPE)
const char* version_info = "Version:" STR(VERSION) "(" __DATE__ " " __TIME__ ")" "(" STR(DEV_TYPE) ")";
#elif defined(VERSION)
const char* version_info = "Version:" STR(VERSION) "(" __DATE__ " " __TIME__ ")" "(" "general" ")";
#elif defined(DEV_TYPE)
const char* version_info = "Version:" "unknow" "(" __DATE__ " " __TIME__ ")" "(" STR(DEV_TYPE) ")";
#else
const char* version_info = "Version:" "unknow" "(" __DATE__ " " __TIME__ ")" "(" "general" ")";
#endif
return version_info;
}
int main()
{
printf("version=%s\n",soft_version());
return 0;
}
gb@gb-Default-string$ g++ -g -std=c++11 -DVERSION='V0.0.0.1' -DDEV_TYPE='ft' test.cpp -o test
gb@gb-Default-string$ ./test
date=Jul 3 2024
version=Version:V0.0.0.1(Jul 3 2024 13:45:06)(ft)
gb@gb-Default-string$ strings test |grep Version:
Version:V0.0.0.1(Jul 3 2024 13:45:06)(ft)
gb@gb-Default-string$