如何指定SO的搜尋路徑

2021-06-18 12:40:01 字數 794 閱讀 8251

使用ld_library_path來指定so的搜尋路徑

聯結器還可以使用下面的搜尋路徑來定位需要的共享庫:

1. 所有由"-rpath-link"選項指定的搜尋路徑.

2. 所有由"-rpath"指定的搜尋路徑. 「-rpath"跟"-rpath_link"的不同之處在於,由"-rpath"指定的路徑被包含在可執行檔案中,並在執行時使用, 而"-rpath-link"選項僅僅在連線時起作用. 它只用於本地聯結器.

3. 在乙個elf系統中, 如果"-rpath"和"rpath-link"選項沒有被使用, 會搜尋環境變數"ld_run_path"的內容.它也只對本地聯結器起作用.

4. 在sunos上, 「-rpath"選項不使用, 只搜尋所有由"-l"指定的目錄.

5. 對於乙個本地聯結器,環境變數"ld_library_path"的內容被搜尋.

6. 對於乙個本地elf聯結器,共享庫中的`dt_runpath"和`dt_rpath"操作符會被需要它的共享庫搜尋. 如果"dt_runpath"存在了, 那"dt_rpath"就會被忽略.

7. 預設目錄, 常規的,如"/lib"和"/usr/lib".

8. 對於elf系統上的本地聯結器, 如果檔案"/etc/ld.so.conf"存在, 這個檔案中有的目錄會被搜尋.

如上所述,可以用"-rpath-link","-rpath",或者檔案"/etc/ld.so.conf"來指定。

-rpath-link"

雖然可以制定路徑但生成的程式執行時還是要修改/etc/ld.so.conf檔案如果連線的庫不是在標準的庫路徑下面

LUA require 搜尋路徑指定方法

如果是乙個 lua 的檔案,裡面用到了自己寫的庫,或者第三方寫的庫,但是你不想把它放到 lua 的安裝目錄裡,則在 裡面可以指定require搜尋的路徑。package.path usr local share lua 5.1 lua home resty lua 搜尋lua模組 package.c...

LINUX動態庫 SO 搜尋路徑 目錄 設定方法

方法一 在配置檔案 etc ld.so.conf中指定動態庫搜尋路徑。vi etc ld.so.conf 新增 lib目錄 ldconfig 方法二 通過環境變數ld library path指定動態庫搜尋路徑。export ld library path ld library path opt 方...

GCC編譯時指定動態庫搜尋路徑

補充檢視編譯好的動態庫或者程序的rpath的方法 動態庫的搜尋路徑的順序 參考資料 gcc中的rpath引數可以用編譯時指定動態庫的搜尋路徑,這樣執行時就不需要export ld library path了。編譯時增加引數 wl,rpath 編譯時增加引數 wl,z,origin wl,rpath ...