我正在尝试按时间创建自动增量构建版本&日期
我无法添加日期&时间#define
version.h文件
#define STRINGIZE2(s) #s
#define STRINGIZE(s) STRINGIZE2(s)
#define VERSION_MAJOR 5
#define VERSION_MINOR 0
#define VERSION_REVISION 2
#define VERSION_BUILD 1
#define PRODUCTVER VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD
#define STRFILEVER STRINGIZE(VERSION_MAJOR) "." STRINGIZE(VERSION_MINOR) "." STRINGIZE(VERSION_REVISION) "." STRINGIZE(VERSION_BUILD)
.rc文件
VS_VERSION_INFO VERSIONINFO
FILEVERSION PRODUCTVER
PRODUCTVERSION PRODUCTVER
VALUE "FileVersion", STRFILEVER
VALUE "ProductVersion", STRFILEVER
我试过
#define VERSION_MAJOR __DATE__
#define VERSION_MINOR __TIME__
#define VERSION_REVISION 2
#define VERSION_BUILD 1
我还尝试了其他方式,如
time_t now;
struct tm *current;
now = time(0);
current = localtime(&now);
#define VERSION_MAJOR current->tm_wday
#define VERSION_MINOR current->tm_hour
#define VERSION_REVISION 2
#define VERSION_BUILD 1
没有成功
我只想在定义
中添加日期和小时我希望有一个解决方案
谢谢
答案 0 :(得分:1)
鉴于下面的示例,我们有一个构建脚本修改版本文本中的值。
static const char version_text[] = "519";
char const *
Version_Get_Text(void)
{
return version_text;
}
unsigned int
Version_Text_Length(void)
{
return sizeof(version_text) - 1U;
}
不需要凌乱的#define
宏。这些函数还保留了运行时和类型安全性:当版本发生变化时,不需要重建访问这些函数的文件;只有这个模块。
这项技术与我们的自动构建服务器相结合,到目前为止已经持续了一年,没有任何问题。
此外,无需进行优化。访问该版本不是我们产品的核心操作的一部分;它只发生在初始化时,首次显示调试提示或用户发送询问版本的命令时。在这些情况下,执行时间并不重要。