共享库 – 如何在Linux上控制共享库版本问题?
例如,我创建了一个名为libXXX.so.0.0.0的共享库,其soname为libXXX.so.0.那么,我是否需要创建一个名为libXXX.so.0的符号链接并让它指向真正的共享库?或者我只需要创建一个名为libXXX.so的符号链接?
此外,如果我将库更新为libXXX.so.0.0.1怎么办? >如果我在系统库路径上安装共享库,例如 顺便说一句,如何控制Makefile中的版本问题?我的意思是我需要添加一些命令,如ln -s或ldconfig? 解决方法
是的,创建一个名为libXXX.so.0的符号链接,指向libXXX.so.0.0.0.
如果您希望人们能够构建链接到此库的程序,那么还要创建一个名为libXXX.so的符号链接,指向libXXX.so.0. libXXX.so.0符号链接将由程序加载器使用,因为这是程序将要查找的soname. libXXX.so符号链接将在构建程序时由链接器使用,因为根据历史惯例,链接器的工作方式.
然后重新制作libXXX.so.0符号链接,使其指向libXXX.so.0.0.1.没有什么需要改变.由于libXXX.so符号链接指向libXXX.so.0,它将自动指向新库.
如果您使用某些打包系统(RPM,…)安装新库,则使用打包系统提供的用于管理符号链接的任何功能.如果你只是使用脚本或Makefile节,那么只需rm -f旧的符号链接和ln -s新的符号链接. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |