insmod: Unknown symbol in module or no symbol version for

搞了半天原来是Makefile的问题

 

vdisk.c中

 

char * vdisk[VHDD_MAX_DEVICE]={NULL,}; EXPORT_SYMBOL(vdisk);

 

vhdd.c中

extern char *vdisk[VHDD_MAX_DEVICE];

 

一开始分别使用Makefile生成的就出错了

dmesg结果

insmod: Unknown symbol in module or no symbol version for_第1张图片

正确的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是关键

你可能感兴趣的:(shell,Module,null,makefile)