关于linux中的C语言的 动态链接库

时间:2021-08-04 15:49:58
关于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