linux动态加载动态三种方式
linux动态库查找,Linux查找动态库的3种方法 转载
2021-05-13 15:55:55
Linux查找动态库的3种方法
linux默认加载动态库的路径是 /lib或者是/lib64, 32位的系统是前者,64位是后者。
如果找不到还有3个地方
LD_LIBRARY_PATH
rpath
ldconfig
通过设置LD_LIBRARY_PATH环境变量方式,让系统在这个环境变量设置的路径查找动态库。
$> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:XXXXXX
-
export LD_LIBRARY_PATH=/export/apps/anaconda2/4.0.0/lib/:$LD_LIBRARY_PATH
-
export LIBRARY_PATH=/export/apps/anaconda2/4.0.0/lib/:$LIBRARY_PATH
rpath是ELF文件头(可执行文件的统称)的一部分,通过设置这个变量直接指定动态库的绝对路径。可使用readelf命令查看ELF文件的rpath
$> readelf -d xxx
要设置rpath,可以使用cmake,cmake默认生成的可执行文件是带有rpath的。
ldconfig是通过设置 读取 /etc/ld.so.conf, 然后创建临时缓冲文件 /etc/ld.so.cache~
因此可以将动态库所在的路径加载到 /etc/ld.so.conf文件,然后 运行ldconfig命令
$> sudo ldconfig
也可以使用ldconfig查看缓冲的动态库
$> sudo ldconfig -p
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理.
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2020-07-06 Kafka+ZooKeeper高可用集群部署