我看过this解决方案,但我遇到了同样的错误。对于一个类,我们不得不切换到c99编译器而不是gnu,但现在timespec似乎被打破了。除了“timespec的存储大小未知”之外,我还得到了一堆其他错误,例如“CLOCK_MONOTONIC undeclared”,“取消引用指向不完整类型'struct timespec'的指针”,以及未使用的变量警告,但我认为这些会发生一旦我解决了编译器问题。
我不认为我声明timespec变量的方式有什么问题,
struct timespec startTime;
答案 0 :(得分:8)
由于这种“时钟”支持不是C99而是POSIX,默认情况下不启用。
要启用它,您需要将选项-D_POSIX_C_SOURCE=199309L
传递给编译器或放置
#define _POSIX_C_SOURCE 199309L
在相关源文件的最开头。
答案 1 :(得分:0)
将 C dialect 标志设置为 ISO C99 的 GNU 方言:
-std=gnu99