鏈接靜態庫文件時的搜索路徑


經測試,鏈接靜態庫的時候靜態庫的搜索路徑包括/lib;/lib64;/usr/lib;/usr/lib64/;/usr/local/lib;/usr/local/lib64,

 

靜態庫文件完整的搜索順序:

比如我們要生成的最終可執行文件叫main 主程序源代碼叫main.c,生成好的庫文件叫做kkk庫,

(1):

cc -o main main.c  –lkkk(再說一遍,此命令就是將main.c源代碼與其所依賴的名為kkk的庫文件鏈接,形成最終的可執行文件)

如果我們有定義環境變量LIBRARY_PATH,則現在這個環境變量定義的目錄下尋找libkkk.so的文件,找不到或者沒有定義環境變量的情況下則依次在/lib64;/usr/lib64/;/usr/local/lib64;/lib;/usr/lib;/usr/local/lib;下找libkkk.so文件,如果還是沒找到,那么再翻回來重新在環境變量目錄/lib64;/usr/lib64/;/usr/local/lib64;/lib;/usr/lib;/usr/local/lib;下找libkkk.a文件

如果還沒找到則報錯

(2)

cc -o main main.c -L. –lkkk(此命令與(1)相比增加了L參數)

則在上面的查找順序的基礎上添加了本地(或其他目錄,cc -o main main.c -L其他目錄 –lkkk)查找

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM