|
我以前编译驱动代码都是在源码下直接修改makefile和Kconfig,总觉得非常的麻烦,很容易出错,还把源码高得乱七八糟。现在我不修改源码,希望直接编译,但是一直没有编译成功过,求原因。
我的源码存放在/opt/Linuxkernel/linux-2.6.38.1
系统版本也是2.6.38.1,我的驱动代码只是一个很简单的。
驱动代码应该问题不大,但是这个Makefile文件出问题.
我的Makefile如下:
ifneq ($(KERNERELEASE),)
obj-m := memdev.o
else
KDIR :=/opt/LinuxKernel/linux-2.6.38.1
PWD :=$(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif
编译的结果如下:
[gong@Gong-Computer memdev]$ make
make -C /opt/LinuxKernel/linux-2.6.38.1 M=/home/gong/program/cprogram/module/memdev modules
make[1]: Entering directory `/opt/LinuxKernel/linux-2.6.38.1'
Building modules, stage 2.
MODPOST 0 modules
make[1]: Leaving directory `/opt/LinuxKernel/linux-2.6.38.1'
查看并没有生成一个.ko文件,具体的 愿意不清楚,换其他的内核版本都出现这个 问题,所以求讲解。谢谢. |
|