静态库
在链接阶段
会将汇编生成的目标程序
和引用的库
一起链接打包到可执行文件
中, 此时的静态库就不会再改变了, 以为它是编译时
被直接拷贝到目标程序的可执行文件中
优点
编译完成后,静态库文件实际上没什么作用了, 目标程序没有外部依赖,直接可以运行
缺点
由于静态库会有两份,所以会导致目标程序的体积增大,对内存, 性能, 速度消耗很大
动态库
程序编译时并不会
链接到目标程序中, 目标程序只会存储指向动态库的引用
,在程序运行时
才会被载入
优点
-
减少打包之后的APP大小
:因为不需要拷贝到目标程序中,所以不会影响目标程序的体积,与静态库比,减少了APP的体积大小 -
共享内存,节约资源
: 同一份库可以被多个程序使用 -
通过更新动态库,达到更新程序的目的
: 由于运行时载入的特性, 可以随时对库进行替换,而不需要重新编译代码
缺点
动态载入会带来一部分性能损失,使用动态库也会依赖外部环境,如果环境缺少了动态库,或者库的版本不正确,就会导致程序无法运行
静态库和动态库
网友评论