静态库是在编译链接时被静态地链接到可执行文件中,而动态库是在运行时被动态地加载到内存中。
静态库的代码会完整地被复制到可执行文件中,每个可执行文件都会包含一份完整的静态库代码,而动态库的代码只会被保存一份在磁盘中,多个程序可以共享同一份动态库。
静态库文件体积通常比较大,因为会包含完整的代码,而动态库文件体积较小。
静态库的加载速度比较快,因为代码已经被链接到可执行文件中,而动态库的加载速度稍慢。
更新静态库需要重新编译整个可执行文件,而更新动态库只需替换动态库文件即可。
动态库可以在运行时加载和卸载,可以减少内存占用,而静态库的代码会一直存在于可执行文件中,无法卸载。