Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31215
  • 博文数量: 11
  • 博客积分: 480
  • 博客等级: 下士
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-22 17:29
文章分类

全部博文(11)

文章存档

2009年(11)

我的朋友

分类: LINUX

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
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



阅读(1001) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~