无法编译一些简单的D代码

时间:2012-06-30 07:33:13

标签: d

我正在编译一些简单的代码:

import std.c.time;
.
.
.
timespec zero;
nanosleep(&zero, null);
.
.
.

我得到的是:

Error: undefined identifier timespec
Error: undefined identifier nanosleep

std.c.time仅仅是C time.h的快捷方式。 如果我调用time.h中定义的其他函数,比如clock(),那就没关系。 如果我在C中编写类似的代码(使用nanosleep()),那就没关系。 在time.h我看到timespecnanosleep声明放在某些#ifdef之下,可能与我的问题有关吗?

我怎样才能编译它?

我的工作环境是: dmd v2.059 Ubuntu 12.04

2 个答案:

答案 0 :(得分:5)

在C99标准中,

timespecnanosleep正好被提及0次。它不是标准C的一部分,无法在标准time.h文件中找到,因此无法在std.c.time中找到。

答案 1 :(得分:4)

正如Nightcracker右手所指出的,nanosleep()不属于C99标准,但它属于POSIX,因此,所需要的只是import core.sys.posix.time;。 一个总的结论,搜索D库/接口。