如何区分静态链接库和动态连接库

之前一直不是很理解静态链接库和动态连接库的区别,今天在此做一下汇总。首先从下图了解一下文本文件是如何编译成二进制格式的。

【静态链接库】是指在编译的连接阶段将库函数嵌入到应用系统程序的内部。但是如何多次调用,则库函数会被调用很多次,造成极大的空间浪费。他的优势在于,应用程序可以独立运行,因为静态连接的时候已经将所需的组件都已经加载到应用程序中,不需要对于的.a、.lib文件。

静态库对于库函数的连接是放在编译时期完成的。Linux静态库命名规则,必须是lib[your_library_name].a :lib为前缀,中间是静态库名,扩展名为.a. 可以通过ar工具将目标文件打包成.a静态库文件。

【动态链接库】会将公用的库函数以及相关组件都存放在一个地方,只是将地址信息告诉连接器,只有应用系统在调用该动态库时才会加载到内存。其缺点是应用程序不能独立运行,需要操作系统中安装对应的dll以及运行环境。优点是可执行文件较小。动态库后缀一般为.so、.dll。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值