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

问题描述 投票:0回答:1

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

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

linux shared-libraries
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.