我们正在使用__TIME__
将编译时间嵌入到二进制文件中。不幸的是,没有UTC偏移的时间是没有意义的。我没有看到一个明显的方法来获取运行编译器的时区。我想我可以从configure脚本中获取它。但是有更好的方法吗?
如果我从配置脚本执行此操作,我将需要以某种方式将其放入.h或.c文件中,并且如果文件不存在则执行一些智能操作。
答案 0 :(得分:2)
您可以使用编译器标志从外部传递。大多数编译器提供'-D'
标志以在外部定义#define
宏。假设您将UTC信息放在环境变量中。将该环境变量传递为-D
标志
set $myUTC="-7"
gcc -c mysource.cpp -DUTC=$myUTC
在mysource.cpp
中使用宏UTC
:
printf("Compiled at %d Offset %d", __TIME__, UTC);