动态库(Dynamic Link Library abbr,DLL)技术是程序设计中经常采用的技术。其目的减少程序的大小,节省空间,提高效率,具有很高的灵活性。采用动态库技术对于升级软件版本更加容易。与静态库(Static Link Library)不同,动态库里面的函数不是执行程序本身的一部分,而是根据执行需要按需载入,其执行代码可以同时在多个程序中共享。
我曾经发过帖,叫“恼人的依赖关系”,的确 linux 下的依赖关系确实令人头疼,但不要忘记,不同的 linux 发行版实质上是不同的操作系统,这根 windows 就那么可数的几个版本完全不同,每个发行版本不仅外观不同,最要命的是设计思想都不同,面向客户不同,软件内容和版本不同,做到源代码兼容都不容易,二进制兼容更别提了。由于每个开发人员使用不同的发行版本,引入的依赖关系千奇百怪,你要安装他的软件,也必须安装这个软件依赖的软件,而它又可能依赖更广泛的软件,这样一来形成一张错综复杂的大网,绞缠不清,这其实正是自由软件的致命弱点之一,是极端自由的恶果。基于共同的一个 windows 开发的软件依赖关系相对单纯,基于不同的多个 GNU/linux 开发的软件依赖关系就会错综复杂。但是你总不能因为穿不进鞋子就把脚剁掉吧?所以别指望 linux 下就一个老大一统天下,那样的话开发人员就真的一劳永逸了。