1. 程式人生 > >gcc編譯連結時標頭檔案和庫檔案的搜尋順序

gcc編譯連結時標頭檔案和庫檔案的搜尋順序

編譯:找符號定義

連結:找實現

執行:執行

靜態庫連結時直接寫程序序裡了

動態庫連結時只連結到了一些地址資訊,需要到執行時再進行動態載入

編譯時搜尋標頭檔案的順序:

1.  gcc先找-I設定的路徑

2.  再找gcc的環境變數C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH設定的路徑

3.  最後再找內定目錄/usr/include /usr/local/include

連結時庫檔案的搜尋順序:

1.  gcc先找-L設定的路徑

2.  再找環境變數LIBRATY_PATH設定的路徑

3.  最後再找內定目錄 /lib  /usr/lib  /usr/local/lib 

執行時動態庫的搜尋順序:

1.  編譯程式時直接指定動態庫

2.  找環境變數LD_LIBRARY_PATH設定的路徑

3.  找內定目錄 /lib  /usr/lib

PATH環境變數指明用的一些命令去哪裡找