C 致命错误:linux/delay.h:没有这样的文件或目录

C 致命错误:linux/delay.h:没有这样的文件或目录,c,linux,delay,C,Linux,Delay,我的程序中使用了函数mdelay(),但在编译时,GCC给了我一个错误: 致命错误:linux/delay.h:没有这样的文件或目录 我试图解决这个问题,但没有任何效果 我所尝试的: 将文件delay.h复制到/usr/linux文件夹中,但会显示缺少另一个头文件(asm/delay.h) 将文件delay.h(与上面不同)复制到/usr/asm文件夹中,但它会显示缺少的许多头文件 如何解决这个问题 Envir:ubuntu12.04lts是内核函数。如果您想从c程序中获得延迟,请使用sle

我的程序中使用了函数
mdelay()
,但在编译时,GCC给了我一个错误:

致命错误:linux/delay.h:没有这样的文件或目录

我试图解决这个问题,但没有任何效果

我所尝试的:

  • 将文件delay.h复制到/usr/linux文件夹中,但会显示缺少另一个头文件(asm/delay.h)

  • 将文件delay.h(与上面不同)复制到/usr/asm文件夹中,但它会显示缺少的许多头文件

如何解决这个问题


Envir:ubuntu12.04lts是内核函数。如果您想从
c
程序中获得延迟,请使用
sleep
usleep

我没有找到任何
msleep
标准函数。您可以在
usleep
的帮助下实现它

#include <stdio.h>
#include <unistd.h>

int main(void)
{
    long x = 1000000;
    sleep(1);  //1sec
    usleep(1); //1usec
    usleep(x); //1sec
    x = 1000;
    usleep(x); //1msec
    return 0;
}
#包括
#包括
内部主(空)
{
长x=1000000;
睡眠(1);//1秒
usleep(1);//1sec
usleep(x);//1秒
x=1000;
usleep(x);//1毫秒
返回0;
}
如中所示,
mdelay()
是linux内核源代码中的宏

#ifndef mdelay
#define mdelay(n) (\
        (__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
        ({unsigned long __ms=(n); while (__ms--) udelay(1000);}))
#endif
\ifndef mdelay
#定义mdelay(n)(\

(uuu builtin_uconstant_up(n)和(n)您到底想构建什么?在我看来,您想构建一些针对Linux内核源代码的东西(例如驱动程序)。是这样吗?@evnu不是驱动程序,我只想让我的简单C代码像我使用的那样延迟一小段时间(
Sleep()
)在Windows中使用
usleep的
sleep
@sujin我以前尝试过使用
msleep()
,但这与sleep()不同。@KevinDongNaiJia:哪个
msleep()
函数?我也会使用
usleep()
,并将参数缩放到微秒。