在Linux程序中,我需要加载一个名为libfoobar
的共享对象。在我的系统上,有libfoobar.so
,libfoobar.so.0
和libfoobar.so.0.0.0
。在安装了不同分发的另一个系统上,libfoobar.so
不存在,只有其他两个变体可用。
加载共享对象时我应该使用的文件名是什么?是否足以尝试在任何系统上加载libfoobar.so.0
并在失败时挽救,或者我是否应该尝试加载其他变体?
libfoobar.so.0
和libfoobar.so.0.0.0
应该是符号链接,在某种程度上指向libfoobar.so
。如果您发现系统只存在那些符号链接但不存在libfoobar.so
,那么该系统上的安装就会中断。
除此之外,您还需要使用符号链接还是原始文件名。