insmod:插入错误' wordc.ko':-1模块中的未知符号

时间:2014-05-14 06:27:55

标签: drivers

我正在尝试编写一个简单的内核驱动程序,但我找到一些我无法解决的问题。关注,

wordc.c:

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/miscdevice.h>
#include <asm/uaccess.h>

static int word_count_init(void)
   {
    printk("word_count_init_success\n");
    return 0;
}
//退出Linux驱动
static void word_count_exit(void)
{
  printk("word_count_exit_success\n");
}

// 注册初始化Linux驱动的函数
module_init(word_count_init);
// 注册推出Linux驱动的函数
module_exit(word_count_exit);

MODULE_LICENSE("GPL");

生成文件:

    ifneq ($(KERNELRELEASE),)
  obj-m := wordc.o
else
  KERNELDIR := /lib/modules/$(shell uname -r)/build
  PWD :=  $(shell pwd)
default:
  $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
  rm -f *.o *.mod.c *.mod.o *.ko
endif

当我尝试制作时,会显示

 make: Entering directory `/usr/src/linux-headers-3.11.0-20-generic'
  LD      /android_src/drivers/ch06/built-in.o
  CC [M]  /android_src/drivers/ch06/wordc.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/android_src/drivers/ch06/wordc.ko] undefined!
  CC      /android_src/drivers/ch06/wordc.mod.o
  LD [M]  /android_src/drivers/ch06/wordc.ko
make: Leaving directory `/usr/src/linux-headers-3.11.0-20-generic'

警告“mcount”,任何人都可以告诉我如何解决它。 然后,我使用“insmod wordc.ko”,我失败了,

insmod: error inserting 'wordc.ko': -1 Unknown symbol in module

1 个答案:

答案 0 :(得分:0)

我想我找到了问题并解决了它。 原因来自海湾合作委员会的版本。 我的gcc版本是4.4.7,当我把它改为4.8时, 所有问题都被驳回了。