C語言創建共享庫(動態庫)步驟:
創建sth.c,共享庫源文件:
//sth.c庫源程序 unsigned long long sth(unsigned int x, unsigned int y) { return (x+y+x*y); }
創建測試文件:
//test.c #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { unsigned int x, y; sscanf(argv[1], "%u", &x); sscanf(argv[2], "%u", &y); long long res = sth(x, y);//調用共享庫文件的定義的函數 printf("answer is %u\n", res); return 0; }
生成庫文件:
首先使用 gcc 的-fPIC 選項為動態庫構造一個目標文件:
gcc -fPIC -Wall -c sth.c
接下來,使用-shared
選項和已創建的目標代碼,生成一個動態庫libsth.so:
gcc -shared -o libsth.so sth.o
下面編譯測試主程序,它將會鏈接到剛生成的動態庫 libsth.so:
gcc -o test test.c -L . -lsth sudo cp libsth.so /lib ./test 5 6 answer is 41