xuekcd 发表于 2020-12-31 15:47:42

求本坛的一个帖子:自动把编译时间固化。谢谢!

怎么也找不到这个帖子了,有个好象是__date__的内部指令,直接赋值给变量就好了哦,但是今天试了一下报错了。

armok. 发表于 2020-12-31 15:50:12

记得关键词吗?我可以帮你全文搜索。

snic_k 发表于 2020-12-31 15:55:11

关键字 __DATE__和__TIME__

uint8_t DATE[] = __DATE__;
uint8_t TIME[] = __TIME__;

#define Build_Year                (((DATE - '0') * 1000)+((DATE-'0') * 100)+((DATE-'0') * 10)+(DATE-'0'))

#define Build_Month                (DATE == 'n' ? (DATE == 'a' ? 1 : 6) \
                                                :DATE == 'b' ? 2 \
                                                :DATE == 'r' ? (DATE == 'M' ? 3 : 4) \
                                                :DATE == 'y' ? 5 \
                                                :DATE == 'l' ? 7 \
                                                :DATE == 'g' ? 8 \
                                                :DATE == 'p' ? 9 \
                                                :DATE == 't' ? 10 \
                                                :DATE == 'v' ? 11:12)
#define Build_Day                (DATE != ' '?(((DATE-'0')*10)+(DATE-'0')):(DATE-'0'))

#define Build_Time                (((TIME-'0') * 100000)+((TIME-'0')* 10000)+((TIME-'0') * 1000)+\
                         ((TIME-'0') * 100)+((TIME-'0') * 10)+(TIME-'0'))       

brightchl 发表于 2020-12-31 16:27:01

https://www.amobbs.com/thread-5692461-1-1.html

ikerbo 发表于 2020-12-31 17:27:42

        printf("* %s,%s          *\r\n", __DATE__, __TIME__);

是这个吗

icoyool 发表于 2020-12-31 18:33:10

其实这个还是比较麻烦的, 要写一个脚本, 在build之前修改一下对应的文件, 才能完成, 否则每次都是增量编译, 时间不会刷新的

xuekcd 发表于 2020-12-31 20:30:13

armok. 发表于 2020-12-31 15:50
记得关键词吗?我可以帮你全文搜索。

感谢关注!关键词也记不清了,就只记得有个类似 __date__ 这样写法的指令

xuekcd 发表于 2020-12-31 20:32:39

谢谢各位,可能就是三楼和五楼的写法,我再多尝试尝试吧

zhanyanqiang 发表于 2024-4-19 23:52:45

snic_k 发表于 2020-12-31 15:55
关键字 __DATE__和__TIME__

uint8_t DATE[] = __DATE__;
(引用自3楼)

{:handshake:} 很好用,先谢谢
页: [1]
查看完整版本: 求本坛的一个帖子:自动把编译时间固化。谢谢!