为什么:错误:函数“sys_close”的隐式声明?

为什么:错误:函数“sys_close”的隐式声明?

我正在尝试在 Debian 12 中安装最新的 NVIDIA 驱动程序;该过程的一部分涉及构建一些内核模块。其中大多数编译时都没有错误,但在接近结束时会失败(大约 96%,无论这意味着什么)。日志多次显示此错误,此处为nv-caps.c

     CC [M]  /tmp/selfgz170986/NVIDIA-Linux-x86_64-525.125.06/kernel/nvidia/nv-caps.o
   /tmp/selfgz170986/NVIDIA-Linux-x86_64-525.125.06/kernel/nvidia/nv-caps.c: In function 'nv_cap_close_fd':
   /tmp/selfgz170986/NVIDIA-Linux-x86_64-525.125.06/kernel/nvidia/nv-caps.c:598:5: error: implicit declaration of function 'sys_close' [-Werror=implicit-function-declaration]
     598 |     sys_close(fd);
         |     ^~~~~~~~~
   cc1: some warnings being treated as errors

查找nv-caps.c,我发现:

/* sys_close() or __close_fd() */
#include <linux/syscalls.h>

并在/usr/src/linux-source-6.1/include/linux/syscalls.h

...
asmlinkage long sys_close(unsigned int fd);
...

因此,我可以理解为什么它会在 的隐式声明中失败sys_close(),但我不明白为什么它没有在包含的头文件中获取相当明确的声明。有什么想法吗?

相关内容