linux靜態和動態預設搜尋的路徑相同,為/lib,/usr/lib。(/usr/local/lib)
如果從原始碼編譯安裝或者用apt和yum安裝的其他庫有時安裝目錄並不在這個檔案路徑下,這時我們可以用如下幾種方法。
1. 編譯目標**時指定的動態庫搜尋路徑;
在編譯時通過gcc 的引數」-wl,-rpath,」指定。當指定多個動態庫搜尋路徑時,路徑之間用冒號」:」分隔。
2.環境變數ld_library_path指定的動態庫搜尋路徑;
環境變數 library_path制定的靜態庫搜尋路徑;
ps:這種設定只會生效一次,如果想一次到位請設定bash.
3.配置檔案/etc/ld.so.conf中指定的動態庫搜尋路徑;
/etc/ld.so.conf的第一行有個引用命令:include ld.so.conf.d/*.conf
因此,最優雅的方式是在ld.so.conf.d目錄下建立乙個你的程式依賴的配置檔案,配置檔案內容為程式依賴的動態鏈結庫的路徑,乙個路徑一行。
新增完配置檔案後執行ldconfig使其生效。
4.將其他目錄下的鏈結庫檔案複製到預設目錄下。
linux設定啟動載入動態鏈結庫目錄
linux下安裝完後oracle客戶端後呼叫oci,編譯沒有問題,執行時發現 cannot open shared object file libclntsh.so.10.1 no such file or directory 經過查詢發現是oracle的路徑沒有設定 輸入 locate libcl...
linux動態鏈結庫
在做完mini6410移植全攻略後,打算把自己的linux c筆記,貼出來和大家共享,有不對支援希望大家指出,謝謝!在上篇文章中,是對靜態鏈結庫的介紹,其實有了上面的介紹動態鏈結庫的製作就簡單了,這篇來製作動態鏈結庫 建立動態鏈結庫 cpp view plain copy print?gcc sha...
linux 編譯靜態鏈結庫和動態鏈結庫
我們通常把一些公用函式製作成函式庫,供其它程式使用。函式庫分為靜態庫和動態庫兩種。靜態庫在程式編譯時會被連線到目標 中,程式執行時將不再需要該靜態庫。動態庫在程式編譯時並不會被連線到目標 中,而是在程式執行是才被載入,因此在程式執行時還需要動態庫存在。本文主要通過舉例來說明在linux中如何建立靜態...