【C++】:动态库与静态库区别

【C++】:动态库与静态库区别我们在使用 c 封装为库 有两个平台 win 静态 动态库 和 linux 静态 动态库 那么和的区别是什么呢 区别 静态库和动态库最本质的区别就是 该库是否被编译进目标 程序 内部 分别介绍 静态 函数 库一般扩展名为 a 或 lib 这类的函数库通常扩展名为 libxxx a 或 xxx lib 这类库在编译的时候会直接整合到目标程序中 所以利用静态函数库编译成的文件会比较大 这类函数库最大的优点就是编译成功的可执行文件可以独立运行 而不再需要向外部要求读取函数库的内容 但是从升级难易度来

问题

我们在使用c++封装为库,有两个平台:win(xxx.lib,静态;xxx.dll:动态库) 和 linux(xxx.a,静态;xxx.so:动态库) ,那么静态库动态库的区别是什么呢?

解决

  • 区别:静态库和动态库最本质的区别就是:该库是否被编译进目标(程序)内部。
  • 分别介绍:
    • 静态(函数)库
    • 动态函数库
      动态函数库的扩展名一般为(.so或.dll),这类函数库通常名为libxxx.so或xxx.dll 。
      与静态函数库被整个捕捉到程序中不同,动态函数库在编译的时候,在程序里只有一个“指向”的位置而已,也就是说当可执行文件需要使用到函数库的机制时,程序才会去读取函数库来使用;也就是说可执行文件无法单独运行。这样从产品功能升级角度方便升级,只要替换对应动态库即可,不必重新编译整个可执行文件。

  • 总结:综上,不能看出:
    • 从产品化的角度,发布的算法库或功能库尽量使动态库,这样方便更新和升级,不必重新编译整个可执行文件,只需新版本动态库替换掉旧动态库即可。
      从函数库集成的角度,若要将发布的所有子库(不止一个)集成为一个动态库向外提供接口,那么就需要将所有子库编译为静态库,这样所有子库就可以全部编译进目标动态库中,由最终的一个集成库向外提供功能。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215241.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:22
下一篇 2026年3月18日 下午2:22


相关推荐

  • C语言:十六进制(HEX)和浮点类型(float、double)转换

    C语言:十六进制(HEX)和浮点类型(float、double)转换C 语言 十六进制 HEX 和浮点类型 float double 转换

    2026年3月18日
    1
  • Gson将map转换成JsonObject出现null值

    Gson将map转换成JsonObject出现null值Gson将map转换成JsonObject出现null值异常信息:Exceptioninthread”main”java.lang.IllegalStateException:NotaJSONObject:nullatcom.google.gson.JsonElement.getAsJsonObject(JsonElement…

    2026年4月13日
    6
  • Spring Data Jpa系列教程(一)——–入门

    Spring Data Jpa系列教程(一)——–入门大渣好 我是小小书生 现在开始 我们来学习船新的一门技术 SpringDataJp 它是一个 额 我百度一下 nbsp JPA JavaPersiste 是 Sun 官方提出的 Java 持久化规范 它为 Java 开发人员提供了一种对象 关联映射工具来管理 Java 应用中的关系数据 他的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术 结束现在 Hibernate TopLink

    2026年3月18日
    2
  • 安装pycharm教程最新版激活_Mac序列号

    安装pycharm教程最新版激活_Mac序列号激活码+汉化+Python安装包汉化下载汉化包resources_en.jar找到Pycharm,右键点击显示包内容,把resources_en.jar拷贝到/Applications/PyCharmCE.app/Contents/lib/里面重启Pycharm激活目前比较好用的Python开发工具是PyCharm,但是正版软件需要购买,要不然只能试…

    2022年8月28日
    4
  • php中Session使用方法详解

    php中Session使用方法详解

    2021年10月23日
    43
  • 前缀和【超详细讲解前缀和】

    前缀和【超详细讲解前缀和】输入一个长度为 n 的整数序列 接下来再输入 m 个询问 每个询问输入一对 l r 对于每个询问 输出原序列中从第 l 个数到第 r 个数的和 输入格式第一行包含两个整数 n 和 m 第二行包含 n 个整数 表示整数数列 接下来 m 行 每行包含两个整数 l 和 r 表示一个询问的区间范围 输出格式共 m 行 每行输出一个询问的结果 数据范围 1 l r n 1 n m 1000 数列中元素的值 1000 输入样例 24 输出样例 3610 这一题就是最纯

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号