我的 kali linux 有一个问题 - 我想编写一个简单的程序,其中包含 3 个头文件:
#include <linux/input.h>
#include <stdio.h>
#include <fcntl.h>
我尝试用 gcc (默认编译设置)编译它,然后我一个接一个地收到一大堆错误,例如
/usr/include/linux/cache.h:5:10: fatal error: uapi/linux/kernel.h: No such file or directory
5 | #include <uapi/linux/kernel.h>
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
然后我尝试找到 uapi/linux/ 目录并将其复制到 /usr/include 以便编译器可以找到它,但随后
/usr/include/linux/cache.h:5:10: fatal error: uapi/linux/kernel.h: No such file or directory
5 | #include <uapi/linux/kernel.h>
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
经过几次尝试将目录复制到/usr/include
我终于得到错误,指出“u32”、“u16”的类型名称未知(它们肯定在某些标头中定义)。我不想自己弄乱我的头文件,因为它不起作用,那么我应该做什么来编译这些头文件?
答案1
您可能还没有安装所需的linux-headers
软件包,它应该与您的内核版本相同。
请注意,Kali Linux 基于 Debian 测试,而某些部分也来自不稳定甚至实验,这意味着您可能会遇到错误和稳定性问题。