静态链接-动态链接
静态链接,也就是将所需的库文件全部都拷贝一份到程序中,最终形成一个可执行文件
-
最终生成的可执行文件十分臃肿、巨大。
-
编译时间大大增加。
-
浪费存储器资源。相同的代码会被复制到不同的程序中,操作系统运行的程序越多,浪费就越严重。
-
更新和维护困难。如果你要更新一个库文件,那么你必须要重新修改编译参数,然后将以上费时费力的编译过程重新跑一边,如果其中出了一点偏差,那么不好意思,一切都要重新来过,反复几次后程序不一定能编译出来,但孩子一定可以打酱油了
静态链接问题的根源在于它使程序和静态库的联系过于紧密,解决问题的关键是降低二者间的耦合度,动态链接技术为此应运而生。
与静态链接相比,动态链接将相关符号的绑定工作推迟到程序被加载到内存中执行的时候,这不仅减少了程序的编译时间,而且也使得库文件能够真正的被不同的程序所共享。此处的“共享”有两点含义:一是指库文件在操作系统中只存在一份,而不是像静态链接那样将库文件给每个程序都拷贝一份;二是指在程序运行的过程中,共享库的 text 段的内容可以被不同的进程所共享。
...................................................