gpt4 book ai didi

c - 使用 makefile 时,找到 linux header ,但是当调用 header 中的函数时,它说它们是隐式声明的

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

我正在编写一个内核模块并且我已经开始研究套接字。我已经能够包含其他 linux 头文件,使用它们的功能,并且 makefile 会很好。当我包含 linux/socket.h 时,编译器能够找到该文件,但如果我调用 socket()connect() 等,它会说它们是隐式声明。我该如何解决这个问题?

我已经使用 cat 查看文件以确保它是正确的,确实如此。我试过对位置进行硬编码

/usr/src/linux-headers-4.18.0-17-generic/linux/socket.h

我也尝试过使用 linux-headers-4.18.0-17 的 socket.h,但这也不起作用。

错误之一:错误:函数“套接字”的隐式声明;您指的是 'sget' 吗? [-Werror=implicit-function--声明]

最佳答案

因为它不是socket(),而是sys_socket(),您还需要包含系统调用的头文件。那个只包含结构和常量。函数本身的头文件是 linux/syscalls.h

关于c - 使用 makefile 时,找到 linux header ,但是当调用 header 中的函数时,它说它们是隐式声明的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840257/

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