我正在尝试在 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()
,但我不明白为什么它没有在包含的头文件中获取相当明确的声明。有什么想法吗?