如何使新的頭檔普遍可用?

如何使新的頭檔普遍可用?

我剛剛下載了一些新的頭文件,並有一個我希望提供的資料夾。首先,我想讓任何希望使用它們的檔案都可以使用它們。因此,我希望能夠在我想要的位置包含新的頭檔(稱為 newheader.h),例如 math.h。我應該把它放在哪裡?

其次,我希望將這些文件提供給所有使用者。我有root權限。我需要將其放入一個特殊的目錄嗎?非常感謝!

答案1

將它們存放在/usr/local/include.從http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html,此目錄中的項目“...在系統軟體更新時不會被覆蓋”,這一點很重要,因為您不希望已下載的標頭文件被系統更新破壞,如果您將它們放入,則可能會發生這種情況在/usr/include

答案2

在我的系統上,該/usr/local/include/目錄存在,並且是空的。 Filsystem 層次結構標準說(飛速3.0)要使用的目錄是/usr/local/include.檔案應該是世界可讀的 ( 0444),目錄應該是可搜尋的 ( 0555)。

答案3

問題是,你想達成什麼目標?

通常你會遇到三種情況:

  • 發展
  • 本地安裝(在您的$HOME
  • 全域安裝

對於前 2 個,您可能應該使用-I開關來提供標頭的路徑。第一個可能是-I../mylib/include,第二個可能是-I/home/user/local_libs/somelib/include

第三種是全域安裝,應將它們放置在 中/usr/local/include,但由 automake 或 cmake 等工具管理。打包時,維護者應調整安裝路徑和/或包含路徑以將標頭安裝到/usr/include.

使用 automake 時,您可能會注意到--prefix 範圍預設/usr/local為安全安裝,不會幹擾系統軟體包,而 ie debian 維護者則 ./configure --prefix=/usr在其軟體包腳本中運行。包含路徑是從此前綴構建的,因此它遵循套件安裝。

相關內容