gpt4 book ai didi

c - 警告 : linux kernel module functions undefined

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:03 25 4
gpt4 key购买 nike

我尝试编译简单的内核模块。但接受了下面的消息

-------------------------------------------- ----------------------------------

make -C /lib/modules/3.18.3/build SUBDIRS=/home/sekwon/study/tree/b+tree modules
make[1]: Entering directory `/home/sekwon/study/linux-3.18.3'
Building modules, stage 2.
MODPOST 1 modules
WARNING: "btree_insert" [/home/sekwon/study/tree/b+tree/lsk_b+tree.ko] undefined!
WARNING: "btree_geo32" [/home/sekwon/study/tree/b+tree/lsk_b+tree.ko] undefined!
WARNING: "btree_init" [/home/sekwon/study/tree/b+tree/lsk_b+tree.ko] undefined!
WARNING: "btree_destroy" [/home/sekwon/study/tree/b+tree/lsk_b+tree.ko] undefined!
make[1]: Leaving directory `/home/sekwon/study/linux-3.18.3'

-------------------------------------------- ----------------------------------

下面是我的模块源码

-------------------------------------------- ----------------------------------

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

struct btree_head bptree_head;

static int bptree_init(void)
{
int i, val[10];
unsigned long key[10];
int result;
printk(KERN_ALERT"B+tree start!\n");

for(i = 0; i < 10; i++)
{
key[i] = 1*(i+1);
val[i] = 10*(i+1);
}

result = btree_init(&bptree_head);

for(i = 0; i < 10; i++)
{
result = btree_insert(&bptree_head, &btree_geo32, &key[i], &val[i], 0);
printk(KERN_ALERT"Insert key(%ld) val(%d)\n",key[i],val[i]);
}

printk(KERN_ALERT"Insert finish\n");
return 0;
}

static void bptree_exit(void)
{
printk(KERN_ALERT "B+tree finish\n");
btree_destroy(&bptree_head);
}

module_init(bptree_init);
module_exit(bptree_exit);

MODULE_LICENSE("Dual BSD/GPL");

-------------------------------------------- ----------------------------------

下面是我的 Makefile

-------------------------------------------- ----------------------------------

obj-m   :=lsk_b+tree.o

KDIR :=/lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)

default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

clean:
rm -rf *.ko
rm -rf *.mod.*
rm -rf .*.cmd
rm -rf *.o

-------------------------------------------- ----------------------------------

哪个会出问题??

请帮帮我~!!

最佳答案

我解决了这个问题!!

我发现编译后的内核模块没有包含B树模块(btree)

所以,我尝试更改编译B树模块的配置

关于c - 警告 : linux kernel module functions undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28125158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com