+ -
当前位置:首页 → 问答吧 → 内核模块extern声明的问题

内核模块extern声明的问题

时间:2010-08-06

来源:互联网

写了个这样的:

myppppp.c:
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
extern void ppppp(void);
static int __init this_init(void)
{
    ppppp();
   
    return 0;
}
static void __exit this_fini(void)
{

}
module_init(this_init);
module_exit(this_fini);
jjjj.c:

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
void ppppp(void)
{
    printk("88888 \n");
}
makfile:
obj-m += myppppp.o
all:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

make以后提示说函数ppppp()undefined,为什么这样不行呢?是不是因为makefile不能这么写?对内核模块makefile怎么写一直不懂。。。

作者: zonelight   发布时间: 2010-08-06

obj-m :=xx.o
xx-objs := myppppp.o jjjj.o

作者: wmmy2008   发布时间: 2010-08-06

本帖最后由 zonelight 于 2010-08-06 20:03 编辑

make是可以 但是打log出来说是
[32231.786813] fuckkernel: Unknown symbol ppppp
我在jjjj.c里加了
EXPORT_SYMBOL(ppppp);也不行

不对 这个应该是上次的,现在应该是可以编译但是insmod以后什么也没printk出来

作者: zonelight   发布时间: 2010-08-06

热门下载

更多