C++、mingw 和 clock_gettime 无法编译

标签 c++ time timer mingw

我在使用 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/

相关文章:

C++ "vector iterator not decrementable"?

ruby-on-rails - 为什么在始终设置 Time.zone 的情况下,在 Rails 中使用 Time.current 而不是 Time.zone.now?

php - 如何使用 time() 来计算您登录的秒数

java - 如何使用Timer设置定时任务?

c++ - MFC Unclickable 按钮(在 MouseMove 上远离光标)

c++ - Windows 上的 Flite API 错误

c++ - 在 C++ 中使用命名空间

Python 将回车符视为换行符。我能做什么呢?

javascript - 如何创建秒表

javascript - Ionic&AngularJS,超时未取消