静态库,动态库是啥,有啥区别(静态函数库/动态函数库)

因之前初学接触这个概念的时候无法直观的理解,询问多人也得到类似如下回复:静态库就是静态库,动态库就是动态库。一个编译一个不编译等类似的回复。伪善的人太多,披着“有问题可以问我”的外衣,请教了就TMLGB的各种阴阳怪气,热潮冷讽。最后装B够了,还是不好好告诉你答案,丢一句话你这都不懂是个脑残吧。这里就不地域攻击了。贱人TM的太多了。现在对于静态库和动态库有了较为全面的认识,现在试着回答自己这个问题,也希望能帮助有需要的人。

因为静态库和动态库是一个较为基础的概念,一般只有和我一样的初学者才会不懂这个概念。所以这里我只用粗俗的白话试着说明白

库是什么?

库就是函数库的意思,只是简称了:库=函数库
    函数是什么 ?
        函数就是可以完成某个特定功能的代码块。拥有着很多很多可以完成特定功能的代码块的最终也得存放在特定格式的文件中。
当函数(代码块)实在太多太多了,放在一个文件已经合理的时候又会被拆分到很多很多文件中去。当这些充满函数的文件放在一起时就是就形象的称之为函数库或库了。所以这个库就是一个存满函数文件的仓库。

那什么是静态库或动态库

叫做静态函数库或者动态函数库更合适。
人类写的代码并不能被计算机所识别,计算机识别的是二进制的数字。所以代码变成二进制数字的过程叫做编译,而编译的工具叫做编译器。

静态函数库

当一个程序还是代码的时候,通过编译器把代码编译二进制文件以供计算机可以读取运行。那些庞杂的用于完成特定功能的函数代码仓库的文件随着程序代码文件一起被编译成二进制文件成为程序的一部分。这部分函数代码文件就叫做静态函数库。
    这样的好处:
        就是程序可以独立运行,运行时不在依赖外部某些特定的功能。
    缺点:
        会造成程序的体积会变大。

动态函数库

动态函数库就是存放在系统中的某个特定位置,提供了一些大部分程序都会使用到的功能集合。这样主程序在编译的过程当中就不需要把这部分功能编译到自己的程序中。只需要到系统中特定的位置直接调用动态函数库的功能就行了。
    好处:程序自身的体积不会因为动态函数库变大
    缺点:就是程序运行过程中使用到了这些函数库内的功能时,万一系统特定的位置没有对应的动态库。就会造成程序崩溃或者各种奇怪的问题。

所以动态库和静态库的区别


1、他们在哪里?
动态库在系统中,有没有这个程序劳资就在这里,
静态库在程序中,程序到哪我到哪
2、更新
动态库更新:劳资要更新了,就更新了。
静态库更新,要向自身程序说老大,小弟要更新了。大佬回复:晓得嘛,我更新时你才能更新,我不更新,你急啥子嘛。

所以如果程序运行时缺少某个库时,那就是动态库。只要到网上下载一个点点大的文件就行了。
静态库更新,只有程序要更新添加新的功能的时候,一般同时会自己更新静态库。

3、如果动态库版本差距太大,有可能和程序不兼容,这时候就需要看看,去下载一个对应版本的动态库文件,还是更新自己的程序。因为最新的程序一般都和最新的动态库兼容。

所以无论静态库还是动态库都是一些完成特定功能的代码块集合,只是考虑到使用频率和便捷性而根据真实的环境放置在不同的地方。

  • 43
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值