静态链接与动态链接
静态链接和动态链接的区别:
在链接阶段,根据链接过程中处理方式的不同,链接分为静态链接和动态链接
静态链接:在链接阶段是在链接阶段就把所有需要函数的二进制代码都包含到可执行文件中去,完成所有符号引用的一种链接方式
动态链接:在链接的时候不直接拷贝依赖库的代码,而是通过记录一系列符号和参数,在程序运行或加载时将这些信息传递给操作系统,由操作系统负责将所需要的依赖库加载到内存中,然后程序在运行到指定代码的时候,去执行内存中已经加载的依赖库代码,最终达到运行时链接的目的
内存区别:
静态库存在多个副本(内存和磁盘)
动态库只有一个副本,映射到共享库区域,个人理解共享库区域也就是文件映射区