【发布时间】:2014-09-09 13:53:42
【问题描述】:
我正在尝试在内核 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 需要补丁。我在某处(在 KERNEL 3.10 上)读到内核需要补丁。谁能告诉我在哪里可以获得 3.13 内核补丁来最终解决问题。谢谢
【问题讨论】:
-
该错误是因为您没有明确包含声明函数的标头,并且编译器为您隐式“包含”,这会引发警告。标志“-Werror”使编译器将警告视为错误。尝试添加:
#include <linux/proc_fs.h> -
@braindf:我们不会将此作为答案,因为它就是答案。
-
另外:
create_proc_read_entry是一个已弃用的函数。 lkml.org/lkml/2013/4/11/215
标签: c linux linux-kernel kernel-module