在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...