动态库与静态库小看法

  • 2019 年 11 月 28 日
  • 筆記

动态库与静态库对比一览表

动态库

静态库

文件名

windows: *.dlllinux: *.somacos*.dylib

windows: *.liblinux: *.amacos *.a或*.framework

可执行文件体积

较小

较大

内存使用

较小

较大

执行速度

较慢

较快

一些个人看法

  1. 动态库虽然可以不用打包到安装包中,而依赖系统中的动态库,似乎是一种不错的方案,缩小安装包的大小。但事实上大多数Qt程序都会带上动态库一起打包。这样一来反而比静态库链接的程序更大。因为程序链接静态库时只会链接程序用到的代码。
  2. 修改了动态库代码,如果没有及时更新则会导致程序可能无法运行。
  3. 使用某些开源协议的代码生成的静态库链接在程序中可能存在违反开源协议如(GPL,LGPL等)。