我正在尝试编译一个简单的内核模块。我确实有一个完全编译的内核,并且uname -r
实际上确认我正在运行我编译的内核。
obj-m := exo1_simple_module.o
all:
make -C /lib/modules/$(uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(uname -r)/build M=$(PWD) clean
c文件命名为exo1_simple_module.c
在/home/tom/work/kernel_modules
当我运行make时,我得到一个错误:
没有规则使目标'/home/tome/work/kernel_modules/ex01_simple_module.c需要/home/tom/work/kernel_modules/exo1_simple_module.o
不知怎么的,我认为我应该给gcc一个缺失的开关或命令选项。
你为什么这样做
obj-m := exo1_simple_module.o
当示例显示
时obj-m += exo1_simple_module.o
我也注意到你在uname -r
之前去掉了shell