我剛剛下載了一些新的頭文件,並有一個我希望提供的資料夾。首先,我想讓任何希望使用它們的檔案都可以使用它們。因此,我希望能夠在我想要的位置包含新的頭檔(稱為 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
在其軟體包腳本中運行。包含路徑是從此前綴構建的,因此它遵循套件安裝。