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