我的 /usr/include/sys 目錄在哪裡?

我的 /usr/include/sys 目錄在哪裡?

我最近從 Kubuntu 12.04 升級到 13.04,完全重新安裝。

使用海灣合作委員會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 包的依賴性。

相關內容