如何获取 __TIME__ 的 UTC 偏移量?

发布于 2024-11-04 07:16:25 字数 180 浏览 7 评论 0原文

我们使用 __TIME__ 来将编译时间嵌入到二进制文件中。不幸的是,没有 UTC 偏移的时间是没有意义的。我没有看到一种明显的方法来获取编译器正在运行的时区。我想我可以从配置脚本中获取它。但还有更好的办法吗?

如果我从配置脚本中执行此操作,我将需要以某种方式将其放入 .h 或 .c 文件中,并在该文件不存在时执行一些智能操作。

We are using __TIME__ to embed the time of compilation in a binary. Unfortunately, a time without a UTC Offset is meaningless. I don't see an obvious way to get the timezone that the compiler is running in. I suppose I could grab this from the configure script. But is there a better way?

If I do it from a configure script, I'm going to need to put that into a .h or .c file somehow, and do something intelligent if the file is not there.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷情妓 2024-11-11 07:16:25

您可以使用编译器标志从外部传递它。大多数编译器提供'-D'标志来外部定义#define宏。假设您将 UTC 信息放入环境变量中。将该环境变量作为 -D 标志传递

set $myUTC="-7"
gcc -c mysource.cpp -DUTC=$myUTC

mysource.cpp 中,使用宏 UTC

printf("Compiled at %d Offset %d", __TIME__, UTC);

you can use compiler Flags to pass that externally. Most compiler provide '-D' flag to define #define macros externally. Let's suppose you put the UTC information in an environment variable. Pass that environment variable as -D flag

set $myUTC="-7"
gcc -c mysource.cpp -DUTC=$myUTC

In your mysource.cpp use the macro UTC:

printf("Compiled at %d Offset %d", __TIME__, UTC);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文