理由:エラー: '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()ヘッダーファイルからかなり明示的な宣言が得られない理由は理解できません。どんなアイデアがありますか?

ベストアンサー1

おすすめ記事