我已经下载了一个预编译库,其文件名格式为:
<name>.so.0
我收集了某种版本控制?如何使用该库 - 我需要使用工具来提取它吗?我认为该程序只会<name>
在查找文件时才会查找..
答案1
执行二进制文件时,会自动加载已编译的库。为此,将检查 /etc/ld.so.conf 中定义的位置。在大多数发行版上,您应该将库放在 中/usr/local/lib
,其中存储了未由包管理器安装的库。
如果您不想在系统范围内安装库(或没有 root 访问权限),则可以LD_LIBRARY_PATH
在运行程序时设置为包含 .so 文件的文件夹:
LD_LIBRARY_PATH=/path/to/folder_with_so_file ./yourprogram
关于版本号:如果您的程序明确查找.so
没有版本号,请创建一个符号链接(也在 lib 文件夹中):
ln -s <name>.so.0 name.so
大多数库保留具有最具体版本号的文件,并为主要版本和非版本化名称创建符号链接(例如,在我的系统上/usr/lib
包含文件libjpeg.so
, /usr/lib64/libjpeg.so.62
和/usr/lib64/libjpeg.so.62.0.0
,前两个是到后者的符号链接)