C++静态库与动态库
原文链接地址:http://www.cnblogs.com/skynet/p/3372855.html、https://blog.csdn.net/youmingyu/article/details/53322490
静态链接库
- 包含:头文件 .h 、静态库 .lib
- .lib包含了实际执行代码、符号表等等。
- .lib中的指令都全部被直接包含在最终生成的 EXE 文件中。
- 静态链接库中不能再包含其他的动态链接库或者静态库。
- 对函数库的链接是放在编译时期完成的。
- 程序在运行时与函数库没有瓜葛,移植方便。
- 浪费空间和资源。
动态链接库
- 包含:头文件 .h 、导入库 .lib 、动态库 .dll
- 其实际的执行代码位于.dll中,.lib只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。
- .dll不必被包含在最终exe文件中,exe文件执行时可以“动态”地引用和卸载这个与 exe独立的dll文件。
- 动态链接库中还可以再包含其他的动态或静态链接。
- 将库函数的链接载入推迟到程序运行时期。
- 可以实现进程间的资源共享(因此也称为共享库)。
- 将一些程序升级变得简单。
- 可以真正的做到链接载入完全由程序员在程序代码中控制(显示调用)。
编译过程
创建静态库过程
创建静态库
静态库与动态库比较
天道酬勤 循序渐进 技压群雄