sys / types.h位于何处?

我发现<stdlib.h><stdio.h>头文件位于Ubuntu服务器的/usr/include文件夹中,但是我没有findsys/types.h

我开始怀疑编译器实际上不会使用/usr/include文件夹中的头文件。

这是真的,文件位于哪里?

Solutions Collecting From Web of "sys / types.h位于何处?"

我的Debian盒子(希望Ubuntu没有在他们的热情中过多地杀掉它)放在/usr/include/sys/types.h

你最好的选择是首先执行:

 find /usr/include -name types.h 

然后:

 find / -name types.h 

如果你没有在第一个找到它。

但是,请记住,开发的东西甚至可能不会被安装。 我想成像一个服务器框意味着作为服务器使用,如果编译器和其他一些东西不是默认安装的一部分,它不会感到惊讶(但它会有很多服务器的东西,如ftpdApache等)。

如果编译器在某个地方找到它,而你只是不知道在哪里,你可以使用如下的东西:

 echo "#include <sys/types.h>" | gcc -E -xc - | grep /types.h 

找出它从哪里得到它。

要么:

 echo "#include <stdio.h>" | gcc -E -xc - | grep /stdio.h 

对于你担心的另一个头。

除此之外: gcc命令行在预处理阶段( -E )之后停止,强制将文件视为C源代码( -xc ),并从标准输入( - )中检索程序,在这种情况下从echo语句。

最后的grep只是删除了不重要的行。

sys/types.h文件位于/usr/include/sys/types.h

如果你得到这样的致命错误

 .../linux/linux_types.h:146:38: fatal error: /usr/include/sys/types.h: No such file or directory 

通过使用以下代码修复

 sudo apt-get install build-essential flex libelf-dev libc6-dev-amd64 binutils-dev libdwarf-dev 

如果你有定位命令可用,你可以简单地使用locate

 -bash-3.2$ locate sys/types.h /usr/include/sys/types.h /usr/lib/syslinux/com32/include/sys/types.h -bash-3.2$ 

这是最快最简单的方法。

在Linux上, types.h应该在/usr/include/sys/types.h

只是为了将来的参考,我碰到了我的debian机器上的这个问题,事实证明,在我的情况

 $ apt-file find /usr/include/sys/types.h libc6-dev-i386: /usr/include/sys/types.h 

libc6-dev-i386是我似乎需要安装的软件包

在我的Slackware中,我需要安装glibc来解决这个问题。