__DATE__ 和 __TIME__ 编译
Posted
技术标签:
【中文标题】__DATE__ 和 __TIME__ 编译【英文标题】:__DATE__ and __TIME__ compilation 【发布时间】:2016-05-19 14:13:19 【问题描述】:我正在为我的项目使用 CMake,并且其中一个文件“tools.cpp”包含
__DATE__ and __TIME__
获取编译时间。但是,这个文件不是每次都编译的,也就是说如果我只修改main.cpp,我不会得到最后一次编译时间。
无论我更改了什么文件,我如何才能获得上次编译时间?谢谢。
【问题讨论】:
在 make 文件中添加一个 make 规则,以便在 tools.cpp 文件上调用 touch 实用程序。 您是否尝试在tools.o
和项目中的所有其他目标文件之间添加依赖关系?
这是个好主意,但我真的不知道该怎么做。
【参考方案1】:
如果您正在寻找构建时间和日期,您有两个选择:1)全部重建; 2) 创建一个更改日期和时间的工具。
在我们的系统中,我们有一个包含函数的文件:
std::string
Get_Build_Date()
return "06/28/2023";
我们编写了一个脚本,将函数中的日期字符串替换为构建日期。
这允许仅构建日期文件的最低限度。
编辑 1:替代方案:触摸文件
您可以修改生成文件,以便“触及”日期文件。 *nix 操作系统有一个命令touch
,它将文件的修改日期设置为当前时间和日期。
【讨论】:
以上是关于__DATE__ 和 __TIME__ 编译的主要内容,如果未能解决你的问题,请参考以下文章
代码中,使用__DATE__宏,获取程序编译时间,如何保证每次编译代码(非重新生成方式),都能更新__DATE__的值?