天天看點

Linux開發環境搭建關鍵的庫檔案搜尋調用(靜态庫)頭檔案的搜尋靜态庫檔案運作時動态庫的搜尋路徑

頭檔案的搜尋

gcc 在編譯時如何去尋找所需要的頭檔案:

  1. 編譯器指定的參數 -I 給出的頭檔案包含路徑
  2. 然後找gcc的環境變量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH(分别對應C、C++、objective-C的頭檔案)
  3. GCC标準安裝目錄,系統标準include路徑。安裝GCC套件的時候可以通過–prefix參數手動指定安裝位置。

    預設的安裝位置在:

    gcc/x86_64-linux-gnu/7/

    ,在這個檔案夾之下包含了很多的頭檔案以及庫檔案
  4. 内定目錄,不需要自己額外聲明以及添加的目錄

    /usr/include 及其下面的子目錄

    /usr/local/include  及其下面的子目錄(centos7中該目錄下是空的)

靜态庫檔案

  1. gcc在編譯的時候通過 -L參數 手動指定的搜尋路徑
  2. 再找gcc的環境變量LIBRARY_PATH
  3. 再找内定目錄,這是這些安裝GCC套件的時候所安裝的那些目錄

    /lib和/lib64

    /usr/lib 和/usr/lib64

    /usr/local/lib和/usr/local/lib64

運作時動态庫的搜尋路徑

動态庫的搜尋路徑搜尋的先後順序是:

  1. 編譯目标代碼時使用 -L參數 指定的動态庫搜尋路徑;
  2. 環境變量LD_LIBRARY_PATH指定的動态庫搜尋路徑;
  3. 配置檔案/etc/ld.so.conf中指定的動态庫搜尋路徑;
  4. 再找内定目錄,這是這些安裝GCC套件的時候所安裝的那些目錄

    /lib和/lib64

    /usr/lib 和/usr/lib64

    /usr/local/lib和/usr/local/lib64

繼續閱讀