【问题标题】:How do I compile a linux kernel module如何编译 linux 内核模块
【发布时间】:2012-02-22 04:37:12
【问题描述】:

我无法编译 linux 内核模块,

鉴于以下来源:

/* hello.c */

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
printk(KERN_INFO "Hello world\n");
return 0;
}

void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world\n");
}

/* end of hello.c */

以及以下 Makefile:

obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

当我在与源和 make 文件相同的目录中键入 make 时,我收到消息:'Nothing to be done for `all' 编译似乎在这里停止并且没有创建任何目标文件。

现在只是为了测试,我尝试了一个新的更简单的 Makefile: 目标:=你好 ${TARGET}.o:${TARGET}.c

运行 make 给了我新的错误:hello.c:1: fatal error: linux/module.h: No such file or directory。

但是该文件在文件夹中可用:

/usr/src/linux-headers-2.6.35-22/include/linux 

还有在

/usr/src/linux-headers-2.6.35-22-generic/include/linux

和 kernel.h 文件一样

我错过了什么,有什么想法吗?

提前致谢

【问题讨论】:

    标签: compiler-errors linux-kernel kernel-module


    【解决方案1】:

    您在行首和“make -C ...”之间缺少一个制表符

    【讨论】:

    • 哈哈!谢谢格比!!那解决了它。在那里待了好几天,试图弄清楚这一点:)
    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 2011-06-06
    • 2014-01-25
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多