搞了半天原来是Makefile的问题 vdisk.c中 char * vdisk[VHDD_MAX_DEVICE]={NULL,}; EXPORT_SYMBOL(vdisk); vhdd.c中 extern char *vdisk[VHDD_MAX_DEVICE]; 一开始分别使用Makefile生成的就出错了 dmesg结果 正确的Makefile: obj-m :=vhdd.o export-objs :=vdisk.o KDIR :=/lib/modules/$(shell uname -r)/build PWD :=$(shell pwd) default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean: rm -rf *.ko rm -rf *.mod.* rm -rf .*.cmd rm -rf *.o export-objs是关键