3

我已经看到了这个解决方案,但我遇到了同样的错误。对于一个类,我们不得不切换到 c99 编译器而不是 gnu,但现在 timespec 似乎被破坏了。除了“timespec 的存储大小未知”之外,我还收到了一堆其他错误,例如“CLOCK_MONOTONIC 未声明”、“取消引用指向不完整类型 'struct timespec' 的指针”和未使用的变量警告,但我认为这些会消失一旦我解决了编译器问题。

我不会想象我声明 timespec 变量的方式有什么问题,

struct timespec startTime;

4

2 回答 2

11

由于这种“时钟”支持不是 C99 而是 POSIX,因此默认情况下不启用。

要启用它,您需要将选项传递-D_POSIX_C_SOURCE=199309L给编译器或放置一个

#define _POSIX_C_SOURCE 199309L

在有问题的源文件的开头。

另请参阅man clock_gettime以供参考。

于 2017-03-05T09:31:38.643 回答
0

C 方言标志设置为 ISO C99 的 GNU 方言:

-std=gnu99

于 2021-04-27T12:42:46.243 回答