<del id="lpl3n"><dfn id="lpl3n"><th id="lpl3n"></th></dfn></del>
<p id="lpl3n"><mark id="lpl3n"></mark></p><noframes id="lpl3n"><del id="lpl3n"><dfn id="lpl3n"></dfn></del>

<output id="lpl3n"></output>

      <ruby id="lpl3n"></ruby>

        <pre id="lpl3n"><cite id="lpl3n"><progress id="lpl3n"></progress></cite></pre>

          帮助有志向的年轻人通过努力学习获得体面的工作和生活

          全国免费咨询电话 : 400-609-2893

          静态库和动态库有什么区别?老男孩Linux运维培训

          老男孩IT教育

          行业新闻

          2021年8月4日 17:27

          在Linux中,我们编写代码的时候经常用到已有的接口,它们是通过库的形式来提供给我们使用的,常见形式有两种,一种是以.a为后缀,这也就是静态库;另一种则以.so为后缀,这也就是动态库,那么同为库,这两者的区别在哪呢?我们又该如何使用如何选择呢?请看下文:

                 在Linux中,我们编写代码的时候经常用到已有的接口,它们是通过库的形式来提供给我们使用的,常见形式有两种,一种是以.a为后缀,这也就是静态库;另一种则以.so为后缀,这也就是动态库,那么同为库,这两者的区别在哪呢?我们又该如何使用如何选择呢?请看下文:

          Linux运维

                 首先我们需要了解下什么是目标文件,目标文件常按特定格式来组织,在Linux下,是ELF格式,即可执行可链接格式,在Windows操作系统下,则是PE格式,即可移植可执行。

                 通常目标文件有三种形式:

                 1、可执行目标文件:也就是我们通常所说的,可以直接运行的二进制文件。

                 2、可重定位目标文件:包含了二进制的代码和数据,可以与其他可重定位目标文件合并,并创建一个可执行目标文件。

                 3、共享目标文件:是一种在加载或运行时进行链接的特殊可重定位目标文件。

                 静态库是什么?可冲定位目标文件以一种特定的方式打包成一个单独的文件,并且在链接生成可执行文件时,从这个单独的文件中拷贝自己需要的内容到最终的可执行文件中,这个单独的文件,被称为静态库,Linux中通常以.a(archive)为后缀。

                 动态库是什么?动态库可静态库类似,但是它并不在链接时将需要的二进制代码都拷贝到可执行文件中,而是仅仅拷贝一些重定位和符号表信息,这些信息可以在程序运行时完成真正的链接过程,Linux中通常以.so(shared object)作为后缀。

                 有什么区别呢?

                 1、可执行文件大小不一样:静态链接的可执行文件比动态链接的可执行文件要大得多,因为它将需要用到的代码从二进制文件中拷贝了一份,而动态库仅仅是复制了一些重定位和符号表信息。

                 2、占用磁盘大小不一样:如果有多个可执行文件,那静态库中的同一个函数的代码就会被复制多份,而动态库只有一份,因此使用静态库占用的磁盘空间相比动态库要大。

                 3、扩展性与兼容性不一样:如果静态库中某个函数的实现变了,那么可执行文件必须重新编译,而对于动态链接生成的可执行文件,只需要更新动态库本身即可,不需要重新编译可执行文件。

                 关于“静态库和动态库有什么区别”介绍到这里就结束了,作为IT教育人才服务平台,老男孩教育一直专注于Linux运维人才的输出服务,有效引导了学员的前进方向,让他们少走弯路,帮助更多人了解Linux技术。想深入的学习Linux云计算运维的知识,可以关注下老男孩教育。

                 推荐阅读:

                 shell是什么?如何进行连接的?老男孩Linux学习

                运维工程师必须要知道的Linux知识有哪些?Linux学习

                 Linux是什么?有哪些特点?Linux学习

          本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。
          ……这里才是直正红姐图库 鹤壁市| 承德市| 扎囊县| 双桥区| 中卫市| 青神县| 玉龙| 云南省| 舟曲县| 河西区| 宣汉县| 鹤峰县| 栾城县| 广元市| 瑞金市| 河西区| 洪雅县| 无锡市| 和田市| 天门市| 堆龙德庆县| 海南省| 庄浪县| 北票市| 石台县| 丹棱县| 章丘市| 双辽市| 商丘市| 宜宾市| 德安县| 邢台市| 大方县| 千阳县| 长垣县| 康平县| 鹤山市| 巴马| 星座| 宝山区| 惠来县| 泸水县| 达尔| 张家口市| 泰顺县| 海安县| 衡水市| 温宿县| 梁平县| 兴仁县| 吉安市| 崇礼县| 千阳县| 崇文区| 富阳市| 城固县| 东乌珠穆沁旗| 德保县| 兴化市| 龙江县| 祁阳县| 平塘县| 临湘市| 泸水县| 霍邱县| 崇礼县| 来凤县| 平昌县| 璧山县| 丹东市| 蒙自县| 乌海市| 兴义市| 略阳县| 高雄市| 阳曲县| 三江| 贵南县| 西宁市| 靖远县| 静乐县| 阜新市| 潮安县| 沛县| 达尔| 台山市| 溧水县| http://3g.hvisar888.com http://3g.gwvisal888.com http://m.flscripto888.com http://3g.hsnowr888.com http://www.gwastel888.com http://wap.gwholesalel888.com http://wap.hskipr888.com http://m.flsizeo888.com http://htrustr888.com http://www.hwelcomer888.com http://wap.hstorer888.com