1.創(chuàng)建so文件
這一步很簡單,只需要在用cc編譯的時候,加上-shared選項即可,這樣成成的執(zhí)行程序即為動態(tài)鏈接庫,例如:
cc -shared -o hello.so hello.c
2.調(diào)用so文件中的函數(shù)的步驟
a. 包含so中函數(shù)的頭文件,包含dlfcn.h頭文件,這個頭文件中定義了打開so文件,調(diào)用so的函數(shù),關閉so的函數(shù)
b.申明so中函數(shù)的類型變量
c.用dlopen函數(shù)打開so文件,返回句柄
d.用dlsym函數(shù)以上c步驟中得到的句柄,得到so文件中要調(diào)用的函數(shù)的動態(tài)地址,并把這個地址賦值給在b步驟中申明的函數(shù)類型變量
e.通過b中申明的函數(shù)類型變量調(diào)用so中的函數(shù)
f.用dlclose函數(shù)關閉c中得到的句柄所指向的so動態(tài)連接庫
挺簡單吧!