动态加载带/不带版本号的共享对象

时间:2018-02-17 08:01:16

标签: linux shared-libraries

在Linux程序中,我需要加载一个名为libfoobar的共享对象。在我的系统上,有libfoobar.solibfoobar.so.0libfoobar.so.0.0.0。在安装了不同分发的另一个系统上,libfoobar.so不存在,只有其他两个变体可用。

加载共享对象时我应该使用的文件名是什么?是否足以尝试在任何系统上加载libfoobar.so.0并在失败时挽救,或者我是否应该尝试加载其他变体?

1 个答案:

答案 0 :(得分:1)

libfoobar.so.0libfoobar.so.0.0.0应该是符号链接,在某种程度上指向libfoobar.so。如果您发现系统只存在那些符号链接但不存在libfoobar.so,那么该系统上的安装就会中断。

除此之外,您还需要使用符号链接还是原始文件名。