C++静态库与动态库

原文链接地址:http://www.cnblogs.com/skynet/p/3372855.htmlhttps://blog.csdn.net/youmingyu/article/details/53322490

静态链接库

  • 包含:头文件 .h 、静态库 .lib
  • .lib包含了实际执行代码、符号表等等。
  • .lib中的指令都全部被直接包含在最终生成的 EXE 文件中。
  • 静态链接库中不能再包含其他的动态链接库或者静态库。
  • 对函数库的链接是放在编译时期完成的。
  • 程序在运行时与函数库没有瓜葛,移植方便。
  • 浪费空间和资源。

动态链接库

  • 包含:头文件 .h 、导入库 .lib 、动态库 .dll
  • 其实际的执行代码位于.dll中,.lib只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。
  • .dll不必被包含在最终exe文件中,exe文件执行时可以“动态”地引用和卸载这个与 exe独立的dll文件。
  • 动态链接库中还可以再包含其他的动态或静态链接。
  • 将库函数的链接载入推迟到程序运行时期。
  • 可以实现进程间的资源共享(因此也称为共享库)。
  • 将一些程序升级变得简单。
  • 可以真正的做到链接载入完全由程序员在程序代码中控制(显示调用)。

编译过程

1

创建静态库过程

2

创建静态库

3

静态库与动态库比较

45

原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/9704853.html