就是书上的hello.c例子
编辑好.C文件,上网找了个Makefile,内容如下:
ifneq ($(KERNELRELEASE),)
obj-m:=hello.o
else
KDIR =/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
endif
然后make.
# make
make -C /lib/modules/2.6.18-6-686/bulid M=/usr/src/hello modules
make[1]: Entering direcotry '/usr/src/linux-headers-2.6.18-6-686'
Building modules. stage 2.
MODPOST
can't open file
make[2]:****[__modpost] 错误一
关键是MODPOST后面的can't open file莫非前面就根本没有生成.o文件。拿这
个输出和书上的输出比较果然如此,少了一处:
make[1]: Entering direcotry '/usr/src/linux-headers-2.6.18-6-686'
后面应该还有一行CC
CC [M] /home/ldd3/src/misc-modules/hello.o(目录和我的不一样)
所以嘛,前面根本就没有编译。所以我判断是Makefile写的有问题,上网找了N多个
Makefile,内容基本都一样,并没有额外的加CC命令,这事怎么回事呢?有熟悉的人给
我提供一个正确的Makefile啊,谢谢了
niutao0602 于 2008-07-27 15:04:52发表:
你要在你的hello.c目录下运行make
要不你就把你的PWD改为:
PWD:=/home/ldd3/src/misc-modules/