我的 /usr/include/sys 目录在哪里?

我的 /usr/include/sys 目录在哪里?

我最近从 Kubuntu 12.04 升级到 13.04,完全重新安装。

使用 gcc 4.7.3。我编译了一些程序,发现没有/usr/include/sys目录。也就是说types.hstat.h、 等都不存在。它们存在于include/linux目录中,但 不存在include/sys

这是怎么回事?

答案1

如果您在 64 位上使用 Ubuntu(我现在无法在 32 位系统上准确地发送文本),那么问题的目录是:

/usr/include/x86_64-linux-gnu/sys

/usr/include/sys现在,有了这些信息,如果您确实需要这些文件在该位置( ),您可以在终端上使用以下命令创建这些文件的符号链接:

sudo ln -s /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/sys/types.h
sudo ln -s /usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/sys/stat.h

# ...etc

答案2

如果您使用的是 64 位 Linux,请安装 libc6-dev-amd64。在 ubuntu 终端上输入以下命令:

sudo apt-get install libc6-dev-amd64

答案3

让我们检查一下 gcc 的默认包含搜索路径。从这个答案,我们得到这个命令:

gcc -xc -E -v -

在输出的最后,我在我的机器上看到了这个:

ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

注意倒数第二行。这意味着当您使用 编译 C 文件时,gcc 会在尝试 之前#include <sys/stat.h>查找,而我们无需对任何内容进行符号链接。/usr/include/x86_64-linux-gnu/sys/stat.h/usr/include/sys/stat.h

答案4

由于我的架构是 amd64,所以没有libc6-dev-amd64。要安装的包是libc6-dev-i386

这修复了 CPAN 包的依赖性。

相关内容