动态加载共享对象 with/without 版本号
Dynamically loading shared objects with/without version numbers
在 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
,则该系统上的安装已损坏。
除此之外,是否要使用符号链接或原始文件名由您决定。
在 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
,则该系统上的安装已损坏。
除此之外,是否要使用符号链接或原始文件名由您决定。