手动创建__TIME__和__DATE__

时间:2016-05-23 11:32:08

标签: c datetime

我最近将编译器更改为xc16 gcc编译器。这个新编译器没有定义预处理器宏__TIME__

我所做的所有研究都引导我解释如何使用__TIME__以及标准所要求的,但没有关于它是如何工作的。

目前,我使用__TIME____DATE__在编译时创建标记。这会定期检查,如果它早于服务器上软件上的标记,则服务器会将新软件下载到设备。没有__TIME__我就无法实现自动更新系统。

我想我需要#define TIME FunctionToGetCurrentTime的某些内容,但我没有使用time_t now = time(0);的运气 - 显然我错了,因为这是我第一次尝试写预处理器宏。我只使用#define作为值。

1 个答案:

答案 0 :(得分:4)

假设您使用bash(或其他符合POSIX标准的shell):

添加到您的gcc调用以下

-D __DATE__=$(date "+%Y-%m-%d") -D __TIME__=$(date "+%H:%M:%S")

或日期命令的一些标志组合。

取自pmg评论的标志。如果你不使用实现$()的POSIX兼容shell(我能想到的所有现代版本),你可以使用反引号代替``。