unix下so的符号链接机制

为了库升级方便,举例:有个so库叫libfoo.so.1,某客户程序使用该库,在连接生成二进制文件的客户程序时,正规做法是建立一个libfoo.so.1文件的符号链接,名字通常会叫做libfoo.so,于是客户程序的连接参数应该写成-lfoo,连接生成二进制文件后我们使用ldd命令可以看到客户程序依赖于libfoo.so.1这个库文件。

此后libfoo.so的开发者决定升级该库,但是发布文件的时候文件名改成了libfoo.so.2,并且重新生成符号链接文件libfoo.so指向libfoo.so.2这个新版的共享库。这样做的好处是客户程序在重新编译的时候无需更改Makefile文件,仍然使用-lfoo这个连接参数即可。

原文地址:https://www.cnblogs.com/hencins/p/14251717.html