【问题标题】:Using time.h on macos for cross compiler在 macOS 上使用 time.h 进行交叉编译
【发布时间】:2017-03-22 12:31:49
【问题描述】:

我想在macos上编译如下代码:

struct timeval tv;
int retval = gettimeofday (&tv, NULL);
if (retval == 0)
    TIMEVAL_TO_TIMESPEC (&tv, tp); //here I am getting the error
return retval;

但我得到了错误

错误:“TIMEVAL_TO_TIMESPEC”未在此范围内声明
TIMEVAL_TO_TIMESPEC (&tv, tp);

我正在使用 android 的交叉编译器进行编译。我尝试明确包含 time.h 标头,但仍然找不到 TIMEVAL_TO_TIMESPEC。如何正确编译这段代码?

【问题讨论】:

  • TIMEVAL_TO_TIMESPEC 看起来像是一个 unix 宏。

标签: c++ macos cross-compiling timeval


【解决方案1】:

以下链接解释了 GNU C 库中的所有日期时间概念/标准,大多数平台都坚持使用该库。

https://www.gnu.org/software/libc/manual/html_node/Date-and-Time.html#Date-and-Time

如果您的目标是跨平台开发,最好遵守上述标准。

像 cmets 中指定的“nathan”一样,所使用的宏是特定于某些类 UNIX 系统的。

我快速验证了 GNU C 库的日期和时间(以上链接)。我在任何地方都没有看到“TIMEVAL_TO_TIMESPEC”宏。

据我所知,源自“Berkeley Software Distribution”的操作系统可能具有“TIMEVAL_TO_TIMESPEC”,但可能不是 GNU 标准 C 库的一部分。

如果我错了,请纠正我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多