静态库和动态库的制作及使用,区别

  1. 静态库的制作和使用

    命名:libXXX.a(Linux),libXXX.lib(Windows)

    制作:(1)制作.o文件

              gcc -c XXX.c XXX.c

              (2)将.o文件打包,使用ar工具

              ar rcs libXXX.a XXX.o XXX.o

              (3)编译和链接   

              gcc XXX.c -o XXX -l calc -L库的路径 -I头文件路径

  1. 动态库的制作和使用

    命名:libXXX.so(Linux),libXXX.dll(Windows)

    制作:(1)制作.o文件

              gcc -c -fpic XXX.c XXX.c

              (2)将.o文件打包

              gcc -shared XXX.o XXX.o -o libXXX.so

              (3)编译和链接

              export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:绝对路径

              gcc XXX.c -o XXX -l calc -L库的路径 -I头文件路径

  1. 静态库和动态库区别

(1)静态库

优点:

静态库被打包到应用程序中,加载速度快;

发布程序无需提供静态库,移植方便。

缺点:

消耗系统资源,浪费内存;

更新、部署、发布麻烦。

注:静态库不能多个程序共享,多个程序需要使用同一静态库时,都需要加载,故浪费内存。静态库文件改动后,每个用到同一静态库的程序都需要重新编译、部署、发布。因此,更新、部署、发布麻烦。

(2)动态库

优点:

可以实现进程之间资源共享;

更新、部署、发布简单;

可以控制何时加载动态库。

缺点:

加载速度比静态库慢;

发布程序时需要提供依赖的动态库。

注:当程序使用到动态库时,动态库才加载进去,此后其他程序可以共享同一个动态库。当动态库更改时,只需要更新下动态库,而应用程序不需要再进行编译、部署、发布。 

两者区别:

    命名方式不同,链接时间和方式不同, 内存消耗不同,更新方式不用            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值