静态库:lib + 库的名字 + .a
1.原理:将静态库中的最小单元.o文件,在主程序编译是放到其中
2.优点
1)发布程序时,不需要向别人提供对应的库(因为库中函数已包含到了程序中)
2)加载库的速度快(因为库已经在程序中,调用不需要去别的地方找)
3.缺点
1)库被打包到程序中,导致程序体积比较大
2)当库发生改变时,程序需要重新编译(尽量不要用可能经常需要修改的静态库)
动态库: lib + 库的名字 + .so
1.原理:在程序编译时,只是将动态库的内容做标记,并未将代码编译进去
2.优点
1)执行的程序体积小
2)动态库更新时,无需重新编译程序(函数接口不变时)
3.缺点
1)发布程序时,需要向别人提供对应的库(库并未包含在程序中)
2)加载库的速度慢(相对慢一点)