当前位置: 首页 > 面试题库 >

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

米迪
2023-03-14
问题内容

我正在尝试在内核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内核补丁来最终解决此问题。谢谢


问题答案:

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

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



 类似资料:
  • 我正在用C写这个链表程序 我测试程序时发现了错误 linkedlist。cpp:5:24:错误:隐式声明的“constexpr LinkedList::LinkedList()”LinkedList::LinkedList()的定义{ 这是密码 Linkedlist. h文件: linkedlist。cpp文件: 请帮忙。

  • 问题内容: 我想摆脱警告。当我用 我回来 当我不使用 -ansi 开关进行编译时 我在终端上看到 我想使用 -ansi 开关并摆脱警告。我如何实现我的目标? 环境: CentOS 6.3 32位 gcc版本4.4.7 20120313(Red Hat 4.4.7-3)(GCC) 问题答案: 并且是GNU扩展功能,添加 *包括所有标题 *之前 ,或添加GCC选项。 您不应该直接定义宏,它应该仅在gl

  • 我正在尝试构建由CodeName One构建服务器生成的iOS源代码。我专门升级到Basic帐户以具有此功能。 我在XCode 5.1.1上遇到了与此类似的构建错误: 我是这样做的: 以一个功能正常的CodenameOne应用程序为例(我的应用程序不起作用,所以我也尝试了KitchenSink,结果类似)。 我遵循了指南中“如何做”部分的步骤 从dist加载xcode项目 添加了res的所有内容。

  • 问题内容: 我了解“隐式声明”通常意味着必须在调用函数之前将其置于程序的顶部,否则我需要声明原型。 但是,应该在文件中(该文件已包含在内)。 有没有什么办法解决这一问题? 问题答案: 没错,如果您包含适当的标头,则不应收到隐式声明警告。 然而,该功能已被 删除 ,从C11的标准。这意味着in中不再有原型。 曾经 在。 删除的原因是众所周知的:它不能防止缓冲区溢出。因此,您永远不应使用,而应改用尾随

  • 致命错误:无法在第9行的E:\wamp1\wamp\www\sample.php中重新声明关闭()(先前在E:\wamp1\wamp\www\sample.php: 1中声明) 当我运行这个脚本时,它说不能在第9行中重新声明近()(以前在第1行中被标记)。 即使出现错误,与和相关的值也会传递给css。我在这里做错了什么?我正在调用第9行中的函数。有什么帮助吗?

  • 我知道有很多问题与类似的问题,但我一直在寻找答案,仍然无法找到我的问题。我已经尝试了几种方法来解决这个问题,但我找不到任何解决方案。。。 我代码的一部分:(我不会在其他任何地方使用这个函数) 我得到以下信息: 致命错误:无法在第20行的C:\wamp64\www\myProject-dev\Public\cajas\reposiciones\controller3.php:20中重新声明Valid