通常有兩種方法:
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,指定,當指定多...