分页: 1 / 1

求助:编译hello.o 模块出错

发表于 : 2010-07-05 17:07
zztczcx
hi all

代码: 全选

/*
 *	Hello world module.
 */

#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dule BSD/GPL");


static int hello_init(void)
{
	printk(KERN_ALERT "Hello, kernel!\n");
	return 0;
}

static void hello_exit(void)
{
	printk(KERN_ALERT "Good-bye, kernel!\n");
}	

module_init(hello_init);
module_exit(hello_exit);

代码: 全选

/* makefile */
obj-m := hello.o
when I compile this modules ,it appears this problems.
make -C /usr/src/linux-headers-$(uname -r) M=$(pwd) modules
make: Entering directory `/usr/src/linux-headers-2.6.32-23-generic'
make: *** No rule to make target `linux'. Stop.
make: Leaving directory `/usr/src/linux-headers-2.6.32-23-generic'

any body has some idea to solve it?
thanks advance !

Re: 求助:编译hello.o 模块出错

发表于 : 2010-07-06 14:49
linjiework
我也是个初学者,不知道你的问题出在哪里。

不过我用的 Makefile 没啥问题,你可以参考一下。运行时只需要执行 make 即可。


# Makefile2.6

ifneq ($(KERNELRELEASE),)

#kbuild syntax. dependency relationshsip of files and target modules are listed here.

obj-m := hello.o

else

PWD := $(shell pwd)
KDIR := /usr/src/linux-source-2.6.28


all:
$(MAKE) -C $(KDIR) M=$(PWD) modules

clean:
rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions Module.* modules.*

endif

Re: 求助:编译hello.o 模块出错

发表于 : 2010-08-18 10:34
YT11
obj-m +=hello.o

kernel=/usr/src/kernels/2.6.18-164.el5-i686 (这个是你所要加在模块的源代码路径)


make -C $(kernel) M=`pwd` modules

Re: 求助:编译hello.o 模块出错

发表于 : 2010-08-19 19:02
YT11
是你的Makefile有问题