sys / types.h:没有这样的文件或目录

时间:2016-06-12 06:25:40

标签: c linux module include kernel

我正在尝试编译模块但是得到了这个错误。

fatal error: sys/types.h: No such file or directory
compilation terminated.

这是我的模块文件头

#include <linux/init.h>           // Macros used to mark up functions e.g. __init __exit
#include <linux/module.h>         // Core header for loading LKMs into the kernel
#include <linux/device.h>         // Header to support the kernel Driver Model
#include <linux/kernel.h>         // Contains types, macros, functions for the kernel
#include <linux/fs.h>             // Header for the Linux file system support
#include <asm/uaccess.h>          // Required for the copy to user function
#include <sys/types.h>

我的Makefile

obj-m = test.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

我试图搜索此文件

 find /usr/include -name types.h

以下是结果

/usr/include/sys/types.h
/usr/include/libr/sdb/types.h
/usr/include/rpc/types.h
/usr/include/i386-linux-gnu/sys/types.h
/usr/include/i386-linux-gnu/asm/types.h
/usr/include/i386-linux-gnu/bits/types.h
/usr/include/linux/iio/types.h
/usr/include/linux/types.h
/usr/include/x86_64-linux-gnu/sys/types.h
/usr/include/x86_64-linux-gnu/asm/types.h
/usr/include/x86_64-linux-gnu/bits/types.h
/usr/include/asm-generic/types.h
/usr/include/c++/5/parallel/types.h

我尝试将其设为#include "/usr/include/sys/types.h"

但出现以下错误

/usr/include/sys/types.h:25:22: fatal error: features.h: No such file or directory
compilation terminated.

我正在使用Kali Linux(Debian) AMD64平台

Linux kali 4.5.0-kali1-amd64 #1 SMP Debian 4.5.5-1kali1 (2016-06-06) x86_64 GNU/Linux

有什么问题?感谢

已解决

很抱歉这是我的错,我在类型中输入了一个拼写错误并尝试包含sys/types.h文件,但在我的情况下,/usr/src/linux-headers-4.5.0-kali1-common/include/linux/types.h中所有类型都不是必需的。谢谢大家。

5 个答案:

答案 0 :(得分:5)

我与Linux Mint有类似的错误

  

致命错误:sys / types.h:没有这样的文件或目录

解决了以下问题:

sudo apt install libc6-dev

答案 1 :(得分:1)

我建议使用以下命令查看gcc是否在您的文件所在的目录中查找头文件:

`gcc -print-prog-name=cc1` -v      # for c

答案 2 :(得分:1)

很抱歉这是我的错,我在类型中输入了一个拼写错误并试图包含sys / types.h文件,但并不是所有类型都需要在/usr/src/linux-headers-4.5.0中声明在我的例子中-kali1-common / include / linux / types.h。谢谢大家。

答案 3 :(得分:0)

您只需添加&#34;类型&#34;头文件到您的来源,从这里下载: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/types.h.html

答案 4 :(得分:0)

您可以使用以下方法解决此问题:

sudo apt-get install libc6-dev-i386