linux4 动态链接与静态链接

Posted epll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux4 动态链接与静态链接相关的知识,希望对你有一定的参考价值。

  动态链接 静态链接
概念 编译时不需要,运行时需要(常见软件的更新、游戏的更新维护,相信steam用户都花钱买过.dll包吧!??) 编译时需要,运行时不需要(日常大部分的软件开发编写活动)
优点

1、有利于软件程序的更新维护,节省内存磁盘空间

2、使得开发的过程中的各个模块更加独立,耦合度小,便于独立进行开发测试

1、 代码装载速度快,执行速度略比动态链接库快; 

2、 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。 

缺点

1、使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。

2、速度比静态链接慢。

3、当某个模块更新后,如果新模块与旧的模块不兼容,那么那些需要该模块才能运行的软件,统统撕掉。这在早期Windows中很常见。

1、运行时占用大量内存空间,编译完成后占用大量磁盘空间

2、不利于软件程序的更新维护

以上是关于linux4 动态链接与静态链接的主要内容,如果未能解决你的问题,请参考以下文章

静态链接与动态链接

静态链接与动态链接

Linux动态链接和静态链接简析

静态链接与动态链接

[转载] 动态链接库dll的 静态加载 与 动态加载

如何使用cmake生成基于静态库的动态链接库