假设我已将foo.so.1.1.1库添加到/etc/ld.so.conf
中包含的路径中
在系统上运行ldconfig时,我获得了foo.so.1.1和foo.so.1到foo.so.1.1.1的链接。
如何更改行为以也将foo.so链接获取到foo.so.1.1.1?
最佳答案
ldconfig在找到的所有共享库中查找soname。然后,它使用该soname作为链接的名称来创建链接。将soname用作库的名称和主要版本是常规的(但远没有做到),因此您的库foo.so.1.1的soname为foo.so.1,而ldconfig将创建一个链接。
运行时系统的任何部分都不会查找或不知道名称foo.so。当您将程序链接到库时使用。除非您还拥有该库的所有其他开发文件( header 等),否则没有链接是没有意义的,因此ldconfig自动创建它是没有意义的。而且,由于要使用的链接名称仅是另一种约定,在这种情况下根本没有存储在文件中,因此ldconfig无法知道要创建的名称。
通常,这是在Makefile的安装目标中手动创建的;当为Linux发行版打包库时,该链接通常与头文件一起位于-dev包中。
关于linux - 在Linux上使用ldconfig,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/167635/