zoukankan      html  css  js  c++  java
  • C语言库在不同系统下的后缀

    C语言的静态库与动态库对比分析,各有长短
     库:  指由标准常用函数编译而成的文件,旨在提高常用函数的可重用性,减轻开发人员负担。常用的sdtio.h,math.h等                 库便是C函数库的冰山一角。
     1.静态库:指编译链接阶段将整个库复制到可执行文件
         1.1优点:静态链接的程序不依赖外界库支持,具有良好的可移植性。
         1.2缺点:  每次库更新都需要重新编译程序,即使更新很小或只是局部。
          1.3缺点:每个静态链接的程序都有一份库文件,存储时增加了硬盘空间消耗,运行时则增加了内存消耗。
     2.动态库:指直道运行时才将库链接到可执行程序
         1.1优点:  动态链接方式的程序不需要包含库(编辑链接时节省时间),占用的空间小很多。
          1.2优点:  运行时系统内存只需提供一个共享库给所有程序动态链接,内存消耗减少。
           1.3缺点:  需要系统中动态库支持才可运行,可能有动态库不兼容问题
            小结:在linux系统中:静态库.a
                                                            动态库.so
            在windows中:静态库.lib
                                                            动态库.dll

    linux中静态库和动态库的区别

    一、不同

    库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 

    1. 静态函数库

        这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。

    2. 动态函数库

        这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执行文件比较小。由于函数库没有被整合进你的程序,而是程序运行时动态的申请并调用,所以程序的运行环境中必须提供相应的库。动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便。

    二、相同

    都是由*.o目标文件生成

  • 相关阅读:
    HL 7.19 FFT多项式乘法
    HL 7.18 杂题整理 随笔
    BZOj 3208 食物 生成函数+广义二项式定理
    HL 7.14 整理杂题 随笔
    AC自动机 后缀数组 随笔
    Python 之time时间模块
    Python 之sys系统模块
    Uni-app 之猿产地项目
    Tkinter 之socket聊天室
    Python 之logging日志模块
  • 原文地址:https://www.cnblogs.com/zhangbing12304/p/7016242.html
Copyright © 2011-2022 走看看