动态链接和静态链接库的区别
2018-09-25 本文已影响0人
natewang
二者不同
静态lib将导出声明和实现都放在lib中。编译后所有代码都嵌入到宿主程序
动态lib相当于一个h文件,是对实现部分(.dll文件)的导出部分的声明。编译后只是将导出声明部分编译到宿主程序中,运行时候需要相应的dll文件支持
动态库的优势
动态库把对一些库函数的链接载入推迟到程序运行的时期
可以实现进程之间的资源共享(因此动态库也称为共享库)
将一些程序升级变得简单
可以真正做到链接载入完全由程序员在程序代码中控制(显式调用)
静态库名称
Unix:libxxx.a
Windows:xxx.lib
动态库名称
Linux:libxxx.so
Mac OS:libxxx.dylib
Windows:xxx.dll