我在VMWare上安装了Ubuntu。我的目的是在其中构建内核模块。我是初学者。我写了一个基本模块。但我无法使用'Makefile'编译它。我需要修理什么?
C文件(kernel.c)的内容: -
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
makefile的内容: -
obj-m+=kernel.o
all:
make -C /lib/modules/$(shell uname -r)/build/ M=$(shell PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(shell PWD) clean
答案 0 :(得分:0)
使用TAB作为分隔符,而不是空格。你的Makefile应该写成如下。
obj-m+=kernel.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
还应注意$ {PWD}是一个环境变量。无需外壳读取env变量。