我在使用 minGW 的 g++.exe 编译一些 Linux C++ 代码时遇到了一些困难。 具体来说,就是无法理解这段代码:
struct timespec now;
clock_gettime(CLOCK_REALTIME,&now);
我已经添加了必要的头文件
#include <ctime>
编译错误为:
error: aggregate 'special_time2()::timespec now' has incomplete type and cannot be defined
error: 'CLOCK_REALTIME' was not declared in this scope
error: 'clock_gettime' was not declared in this scope
有人知道为什么会发生这种情况并且知道潜在的解决方法吗?
最佳答案
clock_gettime
不是标准的 C 或 C++ 函数,因此不能保证它在非 POSIX 系统上可用。
如果您正在编写现代 C++,那么您可以使用 std::chrono
库进行高精度计时。
如果您受困于 2011 年之前的库,那么您唯一的选择是 time()
,它通常只有一秒的精度,或者任何可用的特定于平台的替代方案。不幸的是,我对 MinGW 了解不够,无法帮助您。
关于C++、mingw 和 clock_gettime 无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15746783/