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()
,并将参数缩放到微秒。