当前位置:   article > 正文

可执行程序链接不到动态库的几种解决方法(error while loading shared libraries: lib.so)_/usr/sbin/keepalived error while loading shared li

/usr/sbin/keepalived error while loading shared libraries :libprel.so

目录

可执行程序如何动态库链接?

解决链接不到动态库(error while loading shared libraries: lib.so)


可执行程序如何动态库链接?

    我们的源码编译为可执行文件时,链接器链接动态库需要到我们指定的动态库路径下查找动态库。编译完成后对于可执行文件是如何链接动态库的,其实际的先后搜索顺序如下所示:

  • 编译源代码指定的动态库路径;
  • 环境变量LD_LIBRARY_PATH指定的动态库路径;
  • /etc/ld.so.conf指定的动态库路径;
  • 默认的动态库路径/lib和/usr/lib;

解决链接不到动态库(error while loading shared libraries: lib.so)

  首先这里介绍如何查看当前可执行程序链接到的动态库

  1. # linux
  2. ldd ./your_exe
  3. # mac
  4. otool -L ./your exe

  基于动态库的搜索原则也对应存在不同的方式解决,首先查找动态库实际路径:

sudo find / -type f -name "*your_target.so*"

  1、将动态库拷贝至编译源代码指定的动态库路径;

  2、指定环境变量

export LD_LIBRARY_PATH=/your/lib/dir/:$LD_LIBRARY_PATH

  3、将动态库链接追加至配置文件最后

  1. # 将动态库实际路径追加至文件最后保存退出
  2. sudo vim /etc/ld.so.conf
  3. # 运行ldconfig
  4. ldconfig

  4、将动态库拷贝至默认的动态库路径/lib和/usr/lib;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/201052
推荐阅读
相关标签
  

闽ICP备14008679号