这是我的 Makefile 。
obj-m := my-mod.o
my-mod-objs := my-mod-interrupt.o my-mod-control.o my-mod-fops.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
在 my-mod-fops.c 文件中,我有:
extern void *pcpu_dev;
在文件 my-mod.c 中定义变量。
void *pcpu_dev;
因此,在启动make命令时,我会收到以下警告:
make -C /lib/modules/3.16.0-4-amd64/build M=/home/userx/debian/Coding/Module modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
Building modules, stage 2.
MODPOST 1 modules
WARNING: "pcpu_dev" [/home/userx/debian/Coding/Module/my-mod.ko] undefined!
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
我认为这是一个链接问题,但我不知道如何修复它。你能救我吗?