gcc预处理器__DATE__和__TIME__打印到终端

798qvoo8  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(146)

我在代码中使用;

const char compileDate[]      = {__DATE__};
const char compileTime[]      = {__TIME__};

字符串
但是我只能在运行程序时看到这些值。编译后可以看到日期和时间值吗?我想这样做:

gcc main.c
date&time: "29 Feb 2018 16:32:55"
a.out created


当然,代码和终端输出中的日期和时间必须相同。

uidvcgyl

uidvcgyl1#

你不能让编译器来做这件事,但是你可以用一个外部脚本来做,定义你自己的宏来代替__TIME____DATE__
例如,在UNIX shell中:

date '+%b %e %Y %I:%M:%S' >xxx
cat xxx xxx | sed -n -e '1s/^\(...........\).*/#define MY_DATE "\1"/p' -e '2s/.*\(........\)$/#define MY_TIME "\1"/p' > xxx.h
cat xxx

字符串
将打印日期Oct 27 2023 09:37:48,并创建一个头文件xxx. h,其中包含

#define MY_DATE "Oct 27 2023"
#define MY_TIME "09:37:48"


它可以被你的代码使用。

相关问题