一尘不染

错误:函数'create_proc_read_entry'的隐式声明[-Werror = implicit-function-declaration]

linux

我正在尝试在内核3.13上编译内核模块,但出现此错误:

error: implicit declaration of function 'create_proc_read_entry' [-Werror=implicit-function-declaration]

我用谷歌搜索,没有找到任何回应。这是代码中引用此错误的部分:

#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
    proc = proc_net_create(KAODV_QUEUE_PROC_FS_NAME, 0, kaodv_queue_get_info);
#else
    proc = create_proc_read_entry(KAODV_QUEUE_PROC_FS_NAME, 0, init_net.proc_net, kaodv_queue_get_info, NULL);
#endif
    if (!proc) {
      printk(KERN_ERR "kaodv_queue: failed to create proc entry\n");
      return -1;
    }

我可以得到帮助吗?我真的不知道怎么了
可能是需要补丁的内核3.13。我在内核3.10上读到了内核需要修补的地方。谁能告诉我在哪里可以获得3.13内核补丁来最终解决此问题。谢谢


阅读 1514

收藏
2020-06-07

共1个答案

一尘不染

该错误是因为您没有明确包含声明该函数的标头,并且编译器暗中为您“包含”,这会引发警告。标志“ -Werror”使编译器将警告视为错误。尝试添加:
#include <linux/proc_fs.h>

另外:create_proc_read_entry是不推荐使用的函数。

2020-06-07