当前位置: 技术问答>linux和unix
简单hello模块编译不成功
来源: 互联网 发布时间:2016-12-23
本文导语: 本帖最后由 wushengjun_85 于 2011-08-17 13:42:59 编辑 hello.c 文件 #include #include MODULE_LICENSE("GPL") static int hello_init(void) { printk(KERN_ALERT "hello ,worldn"); return 0; } static void hello_exit(void) { ...
#include
#include
MODULE_LICENSE("GPL")
static int hello_init(void)
{
printk(KERN_ALERT "hello ,worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "GOODBYEn");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile 文件
ifneq ($(KERNELRELEASE),)
obj := hello.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
错误信息
[root@localhost scuall]# make
make -C /lib/modules/2.6.34/build M=/root/scuall modules
make[1]: Entering directory `/usr/local/src/linux-2.6.34'
Building modules, stage 2.
MODPOST 0 modules
make[1]: Leaving directory `/usr/local/src/linux-2.6.34'
没有生成hello.ko 文件。
ls 查看文件
hello.c Makefile modules.order Module.symvers
请大家帮帮忙。
|
++
完整代码(测试通过的):
#include
#include
MODULE_LICENSE("GPL");
static int __init hello_init (void)
{
printk("Hello module initn");
return 0;
}
static void __exit hello_exit (void)
{
printk("Hello module exitn");
}
module_init(hello_init);
module_exit(hello_exit);
|
static int hello_init(void)
//改为
static int __init hello_init(void)
static void hello_exit(void)
//改为
static void __exit hello_exit(void)
|
你真仔细,我看了一遍,没看出问题
|
多看多写