linux 動態庫的操作

2022-04-28 22:39:14 字數 785 閱讀 8752

在linux中可以動態載入庫,其使用方法如下:

1. 先生成乙個動態庫libtest.so

/* test.c */

#include

#include

void test1(int no)

void test2(char *str)

編譯庫:

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

這樣就可以生成libtest.so動態庫。

在這個庫里,定義個兩個函式test1,test2,下面將在程式中載入libtest.so,然後呼叫test1,test2。

2. 動態載入libtest.so

/* main.c */

#include

#include

#include

#include

#include /* 必須加這個標頭檔案 */

#include

int main()

/* end */

在這個程式中,dlopen函式用來開啟乙個動態庫,其返回乙個void *的指標,如果失敗,返回null。

dlsym返回乙個動態庫中的乙個函式指標,如果失敗,返回null。

dlclose關閉指向動態庫的指標。

編譯的時候需要加上 -ldl

gcc -o main main.c -ldl(編譯時要使用共享庫dl 其中有dlopen dlsynm dlerror dlclose 函式)

執行main,將會看到呼叫test1,和test2的結果

Linux 動態庫操作的四種方式

1 放到系統庫目錄中 不允許使用 不詳細討論 2 臨時測試 環境變數 ld library path 將動態庫的路徑設定給該變數 將設定的值,匯入到系統環境變數 export ld library path 路徑 可為相對路徑 當終端關閉,設定會失效 3 不常用的方式 永久設定 在家目錄下 bash...

Linux入門基礎操作八(動態庫的使用)

1 命名規則 lib name so 2 製作步驟 gcc fpic c c 生成與位置無關的 生成與位置無關的.o檔案 gcc shared o lib so o 將.o檔案打包成動態庫 3 發布和使用動態庫 示例 動態庫not find ldd 可執行程式 檢視依賴共享庫的名字 解決辦法 1 臨...

Linux中的動態庫

編譯動態庫命令 gcc shared fpic o so c showone.c include include myshow.h int myshow showtw.c include include myshow.h int myshow 編譯好之後,再把main函式編譯為可執行檔案 inclu...