頭檔案的搜尋
gcc 在編譯時如何去尋找所需要的頭檔案:
- 編譯器指定的參數 -I 給出的頭檔案包含路徑
- 然後找gcc的環境變量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH(分别對應C、C++、objective-C的頭檔案)
-
GCC标準安裝目錄,系統标準include路徑。安裝GCC套件的時候可以通過–prefix參數手動指定安裝位置。
預設的安裝位置在:
,在這個檔案夾之下包含了很多的頭檔案以及庫檔案gcc/x86_64-linux-gnu/7/
-
内定目錄,不需要自己額外聲明以及添加的目錄
/usr/include 及其下面的子目錄
/usr/local/include 及其下面的子目錄(centos7中該目錄下是空的)
靜态庫檔案
- gcc在編譯的時候通過 -L參數 手動指定的搜尋路徑
- 再找gcc的環境變量LIBRARY_PATH
-
再找内定目錄,這是這些安裝GCC套件的時候所安裝的那些目錄
/lib和/lib64
/usr/lib 和/usr/lib64
/usr/local/lib和/usr/local/lib64
運作時動态庫的搜尋路徑
動态庫的搜尋路徑搜尋的先後順序是:
- 編譯目标代碼時使用 -L參數 指定的動态庫搜尋路徑;
- 環境變量LD_LIBRARY_PATH指定的動态庫搜尋路徑;
- 配置檔案/etc/ld.so.conf中指定的動态庫搜尋路徑;
-
再找内定目錄,這是這些安裝GCC套件的時候所安裝的那些目錄
/lib和/lib64
/usr/lib 和/usr/lib64
/usr/local/lib和/usr/local/lib64