gcc预处理器-打印到终端的日期和时间

gcc预处理器-打印到终端的日期和时间,gcc,terminal,preprocessor,Gcc,Terminal,Preprocessor,我在代码中使用 const char compileDate[] = {__DATE__}; const char compileTime[] = {__TIME__}; 但我只能在运行程序时看到这些值。是否可以在编译之后查看日期和时间值?我想做这样的事情: gcc main.c date&time: "29 Feb 2018 16:32:55" a.out created 当然,代码和终端输出中的日期和时间必须相同。不可能。不能强制编译器根据\uuuuu dat

我在代码中使用

const char compileDate[]      = {__DATE__};
const char compileTime[]      = {__TIME__};
但我只能在运行程序时看到这些值。是否可以在编译之后查看日期和时间值?我想做这样的事情:

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

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

不可能。不能强制编译器根据
\uuuuu date\uuuuu
\uuuu time\uuuu
以该格式打印日期和时间(例如,到屏幕)。任何从编译器外部获取数据和时间的方法(例如,在makefile中)将获得不同的时间,因为它将在编译器完成后运行。您所能做的最多就是确保您的程序有一个命令行选项来打印其生成时间,并在生成后立即使用该选项运行您的程序。我正在交叉编译。让makefile跟踪日期/时间信息,并将其作为宏传递给编译器(然后允许您的程序使用它)。但是,您将无法使用
\uuuu DATE\uuuu
\uuuu TIME\uuuuu
,因为它们不会给出与makefile中相同的日期/时间结果。