經測試,鏈接靜態庫的時候靜態庫的搜索路徑包括/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)查找