静态链接与动态链接

271 阅读1分钟

在看面经的时候发现这个经常被问到在这里记录一下。

静态链接:静态链接会将库中的代码直接复制一份到可执行文件中。优势是可移植性好,因为需要的代码段已经复制到了可执行文件里去。缺点是更新静态库的时候需要重新编译,而且会存在将同一份代码拷贝多次在内存中多次载入的问题。

动态链接:是在程序运行的时候重定位到对应函数的代码段。这样保证了内存中只有一份相关代码的拷贝。问题就是可移植性差(需要保证开发人员和使用人员使用同样的动态库文件)。