asm/posix_types.h: No such file or directory
本帖最后由 b06050319 于 2011-04-18 22:35 编辑
新编译了linux-2.6.27的内核,拿以前编译通过的一个很简单的模块,修改Makefile ,在这内核里编译,结果出现以下错误,我到/arch/arm/include/asm里面看了下posix_types.h文件时存在的,为什么这里会出现这种错误呢?
我猜想可能是内核编译的配置问题,有高手或者遇到相同问题的,麻烦指点下
make -C /home/linux-2.6.27/linux-2.6.27 M=/home/lww/work/printk modules
make[1]: Entering directory `/home/linux-2.6.27/linux-2.6.27'
CC [M] /home/lww/work/printk/main.o
In file included from include/linux/types.h:11,
from include/linux/prefetch.h:13,
from include/linux/list.h:6,
from include/linux/module.h:9,
from /home/lww/work/printk/main.c:2:
include/linux/posix_types.h:47: fatal error: asm/posix_types.h: No such file or directory
compilation terminated.
make[2]: *** [/home/lww/work/printk/main.o] Error 1
make[1]: *** [_module_/home/lww/work/printk] Error 2
make[1]: Leaving directory `/home/linux-2.6.27/linux-2.6.27'
make: *** [modules] Error 2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
回复 1# b06050319
我觉得这个应该是gcc在指定目录中查找头文件的问题,编译模块的时候make会在linux源码目录下的/include目录下查找包含的头文件,而不会到/arch/arm/include/asm这个目录下去找,所以make程序会提示你找不到所需的头文件。
另外源码目录当中用多个posix_types.h,应该指明具体包含的是哪一个比如:#include</linux/posix_types.h>
本帖最后由 b06050319 于 2011-04-19 20:48 编辑
thanks for the reply,
回复 2# dolphin1987
thanks for the reply,
我的模块没有用到那asm/posix_types.h文件,
我的模块就是一个
#include<linux/module.h>
#include<linux/init.h>
static int __init hello_init(void)
{
printk("hello");
return 0;
}
static void __eixt hello_exit(void)
{
printk("bye");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("xxxx");
最简单的模块,Makefile没有问题,我觉得可能是哪个patch或者哪个选项没选过。
我的内核这样编译的,
make ARCH=arm at91sam9g20ek_defconfig
make ARCH=arm oldconfig
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-none-linu-gnueabi-
然后就编译成功了,但是编译模块时就会出现上面的错误