linux系统下的共享库是真正的共享库,同名库在内存、硬盘中只有一份,所有程序都共享这一份库。一旦库文件升级,系统里面的所有程序都受影响。这就是linux一升级glibc库,整个系统都挂掉的原因。更麻烦的是,整个系统同名库只允许存在一个版本。如果A软件依赖C库的v1.0版本,B软件依赖C库的v1.1版本,那么A、B两个软件就无法共存。
而windows则不同,每个软件都在自己的安装目录下放了一份dll,每个软件可以只使用自己安装目录下的dll库文件,一个共享库只供一款软件使用,在同名库在内存中可以存在多份。这保证了A、B两个软件都能正常使用。