1.把.c文件變成so庫
gcc -shared -o libblog.so input.c
用該命令就把.c文件變成了so庫
2.編譯.c文件為可執行文件
*如果你在你的.c文件文件中包括了包含so庫函數聲明的頭文件,
則你在編譯時用的命令為:
gcc -L/your/lib/path -lblog -o blogexe blogexe.c
以上so庫名稱必須為libblog.so(linux 省略掉了lib等);
*如果你希望在你的程序里運行時加載,用dlopen的方式打開,使用庫里面的函數和數據。
則返回函數的形式( man dlopen 的舉例)為:
int (*cos)(double);
cos=dlsym(dl-handle,"cos");
printf("%f",(*cos)(2.0));
或者這樣
typedef int (*COSFN)(double);
COSFN cos;
cos=dlsym(dl-handle,"cos");
printf("%f",cos(2.0));
必須這樣編譯:
gcc -rdynamic -s -o blogexe blogexe.c -ldl
3.cpp文件里面函數和符號的導出
在需要導出變量和函數的前面加上extern "C"
refrence:1."LINUX系統中動態鏈接庫的創建與使用" by 雨亦奇
http://www.ccw.com.cn/htm/app/linux/develop/01_8_6_2.asp