關於linux中的C語言的 動態鏈接庫
2009-02-07 15:42:08
動態鏈接庫的概念這裏不提,這裏重點說明動態鏈接庫的實現。下面以一個例子爲主線:
1、編寫庫文件add.c 和add2.c
文件 add.c如下:
int add(int a,int b)
{
return a+b;
}
int minux(int a,int b)
{
return a-b;
}
文件add2.c如下:
int add2(int a,int b)
{
return a+b+a+b;
}
2、編寫主函數,測試動態庫使用。文件爲main.c,如下:
#include <stdio.h>
int main()
{
int a=6,b=3;
printf("a+b=%d\n",add(a,b));
printf("a-b=%d\n",minux(a,b));
printf("a+b=%d\n",add2(a,b));
return 0;
}
3、將庫文件編譯成動態庫
gcc -fPIC -shared -o libadd.so add.c
gcc -fPIC -shared -o libadd2.so add2.c
說明:(1)動態庫標準命名爲 : lib*.so
(2) 各選項意義。
4、編譯主函數,並且載入庫
gcc -o test2 main.c ./libadd.so ./libadd2.so
5、測試執行:
執行 ./test2 得到的輸出如下:
a+b=9
a-b=3
分類: LINUX
1、編寫庫文件add.c 和add2.c
文件 add.c如下:
int add(int a,int b)
{
return a+b;
}
int minux(int a,int b)
{
return a-b;
}
文件add2.c如下:
int add2(int a,int b)
{
return a+b+a+b;
}
2、編寫主函數,測試動態庫使用。文件爲main.c,如下:
#include <stdio.h>
int main()
{
int a=6,b=3;
printf("a+b=%d\n",add(a,b));
printf("a-b=%d\n",minux(a,b));
printf("a+b=%d\n",add2(a,b));
return 0;
}
3、將庫文件編譯成動態庫
gcc -fPIC -shared -o libadd.so add.c
gcc -fPIC -shared -o libadd2.so add2.c
說明:(1)動態庫標準命名爲 : lib*.so
(2) 各選項意義。
4、編譯主函數,並且載入庫
gcc -o test2 main.c ./libadd.so ./libadd2.so
5、測試執行:
執行 ./test2 得到的輸出如下:
a+b=9
a-b=3
a+b=18
原創地址:http://blog.chinaunix.net/uid-11332154-id-2882529.html