例如,我创建了一个名为 libXXX.so.0.0.0 的共享库,其soname为 libXXX.so.0 。那么,我是否需要创建一个名为 libXXX.so.0 的符号链接并让它指向真正的共享库?或者我只需要创建一个名为 libXXX.so 的符号链接?
此外,如果我将库更新为 libXXX.so.0.0.1 怎么办?
如果我在系统库路径上安装共享库,请执行此操作
/lib
或/usr/lib
,如何更新符号链接?运用
的 LDCONFIG
如果我在当前本地文件夹上安装共享库,该怎么做 更新符号链接?
答案 0 :(得分:3)
是的,创建一个名为libXXX.so.0
的符号链接,指向libXXX.so.0.0.0
。
如果您希望人们能够构建与此库链接的程序,那么还要创建一个名为libXXX.so
的符号链接,指向libXXX.so.0
。
程序加载器将使用libXXX.so.0符号链接,因为这是程序将要查找的soname。
链接器在构建程序时将使用libXXX.so
符号链接,因为根据历史惯例,链接器的工作方式如何。
此外,如果我将库更新为libXXX.so.0.0.1
,该怎么办?
然后重新制作libXXX.so.0
符号链接,使其指向libXXX.so.0.0.1
。没有什么需要改变。由于libXXX.so
符号链接指向libXXX.so.0
,它将自动指向新库。
如何更新符号链接?
如果您使用某些打包系统(RPM,...)安装新库,则使用打包系统提供的任何功能来管理符号链接。如果您只是使用脚本或Makefile节,那么只需rm -f
旧的符号链接和ln -s
新的符号链接。