關於linux中的C語言的 動態鏈接庫

關於linux中的C語言的 動態鏈接庫 2009-02-07 15:42:08

分類: 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

發佈了30 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章