静态库和共享库(动态库) 动态调用共享库 C的错误处理

一 静态库和共享库(动态库)

1 静态库和共享库简介

  由于项目比较复杂,代码数量非常庞大,可以把代码打包成库文件,提供库文件和头文件即可。
  库文件分为两种:
  静态库和共享库(动态库),静态库和共享库都是代码的归档文件。使用静态库时,把静态库的代码复制到目标文件中,导致目标文件比较大;使用共享库时,把函数的地址放到目标文件中。
  静态库和共享库的优缺点:
  静态库的优点:目标文件独立于库文件,运行速度稍快。缺点:目标文件比较大,不利于代码的修改、扩展和复用。
  共享库的优点:目标文件比较小,修改、扩展和复用代码比较方便。缺点:目标文件必须和共享库文件同时存在,代码才能正常运行。运行速度稍慢。
  开发多半使用 共享库。

2 静态库的使用

使用静态库的步骤:

2.1 创建静态库(.a)

1 写源程序 add.c 保存退出
2 编译源程序,得到 .o 文件(gcc -c)
3 创建静态库文件:
  ar -r libXX.a add.o
注:lib开头 .a结束是静态库的命名规范。XX是库名
创建静态库文件后,还需要提供 .h文件。

2.2 使用静态库

1 写调用源程序 test.c,保存退出
2 编译test.c,只编译不连接(gcc -c)
3 连接 test.o 和静态库文件。
连接方式有三种:
  a 直接连接
    gcc test.o libXX.a
  b 配置环境变量LIBRARY_PATH,把库文件所在路径放入其中,然后:
    gcc test.o -lXX
  c gcc test.o -lXX -L所在路径 (双L,推荐)

add.h
#ifndef ADD_H_
#define ADD_H_
int add(int,int);
double add2(double,double);
#endif
add.c
int add(int a,int b){
  return a+b;
}
double add2(double a,double b){
  return a+b;
}
test.c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值