【发布时间】:2013-07-12 10:29:04
【问题描述】:
使用 C++
我按照自动计划编译我的代码,并且需要在代码本身中使用编译代码的时间。目前我只是使用__DATE__、__TIME__ 宏来获取编译时间日期和时间。但是,即使没有对源代码进行任何更改(宏将在编译时膨胀),这也会导致二进制文件发生更改,这是不好的(如果没有更改,我不希望设置认为二进制文件已更改到源头)。
是否可以在不使用任何会导致源更改的方法的情况下获得编译时间?
谢谢
【问题讨论】:
-
除了将其保存在不属于构建的附加文件中之外,我认为这是不可能的......
-
在这种情况下,您可能希望构建系统仅在有任何更改时才构建。当任何源都没有更改时,仅仅为了重新编译而重新编译没有多大意义。
-
(注意:您应该编辑您的帖子并在宏名称周围添加反引号:“
... the `__DATE__`, `__TIME__` macros ...”,因为目前它们显示为粗体且没有下划线) -
我喜欢这两个答案;)
-
所以您想要编译点的日期和时间,但您不希望您的二进制文件根据该信息进行更改?所以这样做的唯一方法是忽略该信息并确保它不用于存储到二进制文件中的任何内容......
标签: c++ date time compiler-construction macros