静态库:静态库就是在编译程序时,直接讲库中的代码链接到可执行程序中
优点:这样做的一个优点就是可执行程序可以直接运行,并且运行效率较高(不需要额外链接)
缺点:假如多个程序使用同一个静态库,等同于多段相同的代码分别保存在不同的可执行程序中,变相占用了更多的内存空间。
动态库:动态库就是编译程序时,可执行程序中只保存对应的函数引用表,只有到程序执行时,再链接对应的库。
优点:多个可执行程序共用同一个库,节省内存。
缺点:运行可执行程序需要额外做一次链接操作,执行速度会相对慢一些。
总结:静态库牺牲了空间效率,换取了时间效率;动态库牺牲了时间效率,换取了空间效率。没有好坏区别,只看具体需要。