假设我已将库foo.so.1.1.1添加到包含在路径中的路径/etc/ld.so.conf
当我在系统上运行ldconfig时,我得到链接foo.so.1.1和foo.so.1到foo.so.1.1 0.1
如何更改行为以获取foo.so.1.1.1的foo.so链接?
ldconfig查找它找到的所有共享对象,以查找soname.然后,它使用该soname作为链接的名称创建一个链接.将soname作为库的名称和主要版本是常规的(但远非普遍完成),因此您的库foo.so.1.1将具有foo.so.1的soname,并且ldconfig将创建一个名为this的链接.
运行时系统的任何部分都不会查找或知道有关名称foo.so的任何信息.当您将程序链接到库时使用.除非你还拥有库的所有其他开发文件(标题等),否则拥有该链接是没有意义的,所以ldconfig中没有必要自动创建它.并且因为要使用的链接的名称只是另一种约定,并且在这种情况下根本没有存储在文件中,所以ldconfig无法知道要创建的名称.
通常,这将在Makefile的安装目标中手动创建; 当为Linux发行版打包一个库时,该链接通常与-dev包一起存在于头文件中.