Linux頭文件和庫文件搜索

頭文件搜索路徑

搜索順序依次是:
1. 如果是雙引號引用的頭文件則會先搜索當前目錄,否則跳過此步驟;
2. 搜索-I指定的目錄;
2. 搜索gcc的環境變量CPLUS_INCLUDE_PATH(C程序使用的是C_INCLUDE_PATH);
3. 依次搜索gcc的內定目錄:
   /usr/include
   /usr/local/include
   /usr/lib/gcc/x86_64-redhat-Linux/${gcc_version}/include

   ${gcc_version}的獲取命令是:echo gcc -v 2>&1 | awk '/^gcc version/ { print $3 }'

動態庫搜索路徑

搜索順序依次是:
1. ELF可執行文件中動態段中DT_RPATH所指定的路徑。即在編譯目標代碼時, 對gcc加入鏈接參數“-Wl,-rpath”指定動態庫搜索路徑
2. 環境變量LD_LIBRARY_PATH 指定的路徑
3. /etc/ld.so.cache中所緩存的動態庫路徑,這個可以通過先修改配置文件/etc/ld.so.conf中指定的動態庫搜索路徑,然後執行ldconfig命令來改變。
4. /lib
5. /usr/lib

發佈了40 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章