编译模块helloworld程序出错

来源:百度知道 编辑:UC知道 时间:2024/07/04 02:40:10
很简单的程序。。我初学。。Makefile:
obj-m += hello.o
KERNELDIR:=/lib/modules/$(shell uname -r)/build
PWD=$(shell pwd)
all:
make -C $(KERNELDIR) M=$(PWD) modules
clean:
make -C $(KERNELDIR) M=$(PWD) clean

但是make -C /usr/src/linux-2.4.20-8 SUBDIRS=$PWD modules
的时候出现
touch:正在创建目录/usr/src/build/231485-i386/install/usr/src/linux-2.4.20-8/fs/jfs/jfs_debug.h:没有那个文件或目录

需要怎么做啊。。。网上搜了很久也不知道。。。我苦闷啊。。好的加分。。希望能说说类似的这一类怎么识别和解决。。。

谢谢
肯定有GCC。。。就是不知道少了什么啊。。。
那么怎么在低版本下解决这个问题呢??我用的内核就是2.4.20-8~请问该怎么做?

很简单的程序。。我初学。。
这事hello.c程序
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void hello_exit(void)
{

p

是不是和内核有关系吧,你写的模块可能是基于高版本的linux内核,如2.6的内核,而此时你只是用2.4的内核编译,所以没有那个文件或目录。

不知道你写的那个程序是不是linux下的简单驱动,编写驱动是和内核版本关系很大,

好像是少装了什么东西吧,你把gcc之类的东西都装上看看。。

会不会是jfs_debug.h这个文件的缺失或损坏?重装GCC试试看呢?