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

内核编译和嵌入式产品的设计与开发
回复
头像
zztczcx
帖子: 10
注册时间: 2010-05-14 8:09

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

#1

帖子 zztczcx » 2010-07-05 17:07

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 !
头像
linjiework
帖子: 240
注册时间: 2009-07-07 19:52

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

#2

帖子 linjiework » 2010-07-06 14:49

我也是个初学者,不知道你的问题出在哪里。

不过我用的 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
阿呆 : 天下第一呆!
YT11
帖子: 8
注册时间: 2010-08-18 10:27

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

#3

帖子 YT11 » 2010-08-18 10:34

obj-m +=hello.o

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


make -C $(kernel) M=`pwd` modules
YT11
帖子: 8
注册时间: 2010-08-18 10:27

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

#4

帖子 YT11 » 2010-08-19 19:02

是你的Makefile有问题
回复