gpt4 book ai didi

linux - 如何编译在 Linux Ubuntu 中使用的驱动程序/内核模块?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:09 36 4
gpt4 key购买 nike

只是用一些例子来扩展,这里是问题所在:鉴于以下来源:

/* 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 文件也是如此

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

提前致谢

最佳答案

确保 Makefile 中以“make”开头的行以制表符缩进。即“all:”下方的行和“clean:”下方的行应以制表符开头。

关于linux - 如何编译在 Linux Ubuntu 中使用的驱动程序/内核模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9048934/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com