linux指定動態庫路徑

2021-06-17 17:00:07 字數 803 閱讀 2199

通常有兩種方法:

1.把動態庫放到系統庫或者在系統庫中做乙個鏈結,這樣編譯和執行都會去系統庫找。這樣容易引起系統庫混亂。

2.export ld_library_path=###。指定庫搜尋路徑,但是這樣登出再登陸就沒了。

還有第三種方法,編譯時使用-wl,-rpath,-wl,路徑

這樣就能把路徑編譯到可執行檔案裡,但是這樣只能在本地使用,拿到其他地方就需要把庫和路徑也拷貝過去才行。但是這在除錯我們程式時還是非常實用的,特別是在系統庫里存在同一庫的不同版本時。

下面是我寫的乙個小例子:

#vim libtest.c

#include 

int add_fun(int a,int b)

#gcc -fpic -shared -o libtest.so libtest.c 

#vim main.c

#include 

int main()

#gcc main.c -o main.o -wl,-rpath,-wl /home/hb/test/lib/libtest.so

# ldd main.o

linux-gate.so.1 =>  (0x00b0c000)

/home/hb/test/test/lib/libtest.so (0x00eae000)

libc.so.6 => /lib/libc.so.6 (0x005cc000)

/lib/ld-linux.so.2 (0x004b7000)

這時可以看到,libtest.so的路徑直接寫進了可執行檔案

這樣執行時就不會去系統庫里找找個檔案了

Linux指定動態庫路徑

本文 linux指定動態庫路徑 linux指定動態庫路徑包括 1.指定編譯時動態庫路徑 2.指定執行時動態庫路徑。後文提到的動態庫路徑都是指的是這兩種路徑。眾所周知,linux動態庫的預設搜尋路徑是 lib和 usr lib 不管是編譯還是執行都會預設搜尋這兩個路徑 在linux 中,動態庫的搜尋路...

Linux 指定執行時動態庫路徑

方法一 在配置檔案 etc ld.so.conf 中指定動態庫搜尋路徑。每次編輯完該檔案後,都必須執行命令 ldconfig 使修改後的配置生效。我們通過例 1 來說明該方法。例 1 我們通過以下命令用源程式 pos conf.c 見程式 1 來建立動態庫 libpos.so gcc fpic sh...

Linux下指定動態庫的載入路徑

一 庫檔案的搜尋路徑 2 通過環境變數ld library path指定動態庫搜尋路徑 當通過該環境變數指定多個動態庫搜尋路徑時,路徑之間用冒號 分隔 3 在編譯目標 時指定該程式的動態庫搜尋路徑 還可以在編譯目標 時指定程式的動態庫搜尋路徑。這是通過gcc 的引數 wl,rpath,指定,當指定多...