对我来说,这个答案很难找到,这似乎很奇怪。我已经包含了 time.h 和 ctime,但是 vc9 仍然在抱怨未定义的类型 'timespec'。我在这里、MSDN 和网络上进行了搜索(即使有确切的编译器错误),但我找不到答案......也许它只是在噪音中迷失了。
这是确切的错误:
error C2027: use of undefined type 'timespec'
谢谢
struct timespec
来自posix,通常在unix上找到,但在windows上没有。
如果您尝试在 Windows 下编译具有 *nix-y 出处的代码,那么使用 cygwin 和 gcc 之类的东西可能会更好,它可以为您提供类似 *nix 的环境。
尝试包括 pthread.h 。这就是我在与 Codeblocks 一起打包的 ming32 编译器中定义 timespec 的地方。
为什么?我不知道。只是...
#include <time.h>
#ifndef POSIX MORALITY
#include <pthread.h>
#endif
解决方案 2...您不需要预定义的时间规范!你可以自己定义!这就是 mingw 所做的!
struct timespec { /* details */ };
您甚至不必创建 timespec。您可以创建 struct Fun 或 struct Jav::timespec; 具有相同的结构并将其转换为 timespec*。当确实定义了 timespec 时,这样做会使您的代码更具可移植性。