g++ 获取编译时间

注意
本文最后更新于 2024-06-10,文中内容可能已过时。

gcc/g++ 提供编译日期,可以通过获取日期,进行相关判断。

1
2
const char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
                        "Sep", "Oct", "Nov", "Dec"};
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#define COMPILER_YEAR ((((__DATE__ [7] - '0') * 10 + (__DATE__ [8] - '0')) * 10 \
    + (__DATE__ [9] - '0')) * 10 + (__DATE__ [10] - '0'))
#define COMPILER_MONTH ((__DATE__ [2] == 'n' ? (__DATE__ [1] == 'a' ? 0 : 5) \
    : __DATE__ [2] == 'b' ? 1 \
    : __DATE__ [2] == 'r' ? (__DATE__ [0] == 'M' ? 2 : 3) \
    : __DATE__ [2] == 'y' ? 4 \
    : __DATE__ [2] == 'l' ? 6 \
    : __DATE__ [2] == 'g' ? 7 \
    : __DATE__ [2] == 'p' ? 8 \
    : __DATE__ [2] == 't' ? 9 \
    : __DATE__ [2] == 'v' ? 10 : 11) + 1)
#define COMPILER_DAY ((__DATE__ [4] == ' ' ? 0 : __DATE__ [4] - '0') * 10 \
    + (__DATE__ [5] - '0'))
#define COMPILER_DATE_AS_INT (COMPILER_YEAR*10000 + COMPILER_MONTH*100 + COMPILER_DAY)
william 支付宝支付宝
william 微信微信
0%