未知类型名称'clockid_t' [英] unknown type name 'clockid_t'

查看:394
本文介绍了未知类型名称'clockid_t'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用在Mac OS X的Linux平台上编写的C代码.我遇到与计时器有关的错误:

I am trying to use C code written on a Linux platform on Mac OS X. I am running into an error related to timers:

../src/stinger/timer.c:61:1: error: unknown type name 'clockid_t'
../src/stinger/timer.c:74:2: error: #error "Cannot find a clock!"

指向此部分代码.

 static clockid_t clockid;

#if defined(CLOCK_REALTIME_ID)
#define CLKID CLOCK_REALTIME_ID
#define CLKIDNAME "CLOCK_REALTIME_ID"
#elif defined(CLOCK_THREAD_CPUTIME_ID)
#define CLKID CLOCK_THREAD_CPUTIME_ID
#define CLKIDNAME "CLOCK_THREAD_CPUTIME_ID"
#elif defined(CLOCK_REALTIME_ID)
#warning "Falling back to realtime clock."
#define CLKID CLOCK_REALTIME_ID
#define CLKIDNAME "CLOCK_REALTIME_ID"
#else
#error "Cannot find a clock!"
#endif

此错误的原因是什么?类型clockid_t应该来自哪里?

What is the cause of this error? Where should the type clockid_t come from?

推荐答案

如果我没记错的话,所有时钟"内容都是OSX并未实现的POSIX实时"扩展的一部分.因此,您将不会为此感到运气.您必须使用OSX特有的功能才能使时钟具有良好的分辨率.

If I remember correctly all the "clock" stuff is part of the "realtime" extension of POSIX that isn't implemented by OSX. So you will not have luck with that. You'd have to use OSX specific features to have a clock at a good resolution.

P99 中,我有一个OSX的包装代码,用于类似的C11功能timespec_get.不知道这是否真的有用,我没有Mac,但您可以在那里查看. (文件为"p99_threads.h")

In P99 I have a wrapper code for OSX for the similar C11 function timespec_get. No Idea if this really functional, I don't have a Mac, but you could have a look, there. (file is "p99_threads.h")

这篇关于未知类型名称'clockid_t'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆