默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local/lib目录下;当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去。

  1、首先打开/etc/ld.so.conf文件

  2、加入动态库文件所在的目录:执行vi /etc/ld.so.conf,在"include ld.so.conf.d/*.conf"下方增加"/usr/local/lib"。

  3、保存后,在命令行终端执行:/sbin/ldconfig -v;其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache中,如果没做,可能会找不到刚安装的库。

  经过以上三个步骤,"error while loading shared libraries"的问题通常情况下就可以解决了。

  如果运行应用程序时,还是提示以上错误,那就得确认一下是不是当前用户在库目录下是不是没有可读的权限。像我遇到的问题就是,从别的机子拷贝了一些.so动态库,然后用root权限放到了/usr/local/lib中(普通用户没有对该目录的写权限),然后切换用户运行程序时,始终提示找不到.so库,一直以为是我配置有问题,结果是因为权限原因,那些我用root权限增加到/usr/local/lib中的.so文件对于普通用户而言,是没有访问权限的,所以以普通用户运行程序,当需要链接.so库时,在/usr/local/lib中是查找不到的。

  其实,对于由普通用户自己编译生成的.so库文件,比较好的做法是将这些.so库文件的路径用export指令加入到~/.bash_profile中的LD_LIBRARY_PATH变量中,LD_LIBRARY_PATH是程序运行需要链接.so库时会去查找的一个目录,~/.bash_profile是登陆或打开shell时会读取的文件,这样,每次用户登录时,都会把这些.so库文件的路径写入LD_LIBRARY_PATH,这样就可以正常地使用这些.so库文件了。export  LD_LIBRARY_PATH=/usr/local/lib  这样可以在当前shell中加入这个路径

Linux中error while loading shared libraries错误解决办法相关推荐

  1. rac安装过程中 error while loading shared libraries libpthread.so.0 问题的解决

    rac安装过程中 error while loading shared libraries libpthread.so.0 问题的解决 2010-08-28 23:10 在CentOS 5上安装Ora ...

  2. [linux数据库]error while loading shared libraries: libnsl.so.1: wrong ELF class: ELFCLASS32

    解决error while loading shared libraries: libnsl.so.1: wrong ELF class: ELFCLASS32 数据库位数不匹配问题 问题 解决方案 ...

  3. Linux:error while loading shared libraries: /usr/lib/xx.so.xx: file too short

    今天将linux上交叉编译的jrtplib和jthread库拷贝到ARM开发板的/usr/lib目录,结果运行测试程序的时候报错,如博文标题所示. 交叉编译明明没有问题,为什么会这样呢,百思不得其解. ...

  4. 【linux排错】error while loading shared libraries: xxx.so.x 错误的原因和解决办法

    一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: lcw: error while loading shared libraries: libjson.so.0: c ...

  5. linux下设定动态库路径的命令-error while loading shared libraries: xxx.so.x错误的原因和解决办法

    网站:http://blog.chinaunix.net/uid-26212859-id-3256667.html 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: ...

  6. error while loading shared libraries: xxx.so.x错误的原因和解决办法

    一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.s ...

  7. error while loading shared libraries: xxx.so.x 错误的原因和解决办法

    一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.s ...

  8. 【转】error while loading shared libraries: xxx.so.x 错误的原因和解决办法

    原博客地址:http://www.cnblogs.com/Anker/p/3209876.html#undefined error while loading shared libraries: xx ...

  9. error while loading shared libraries: xxx.so.x错误

    2019独角兽企业重金招聘Python工程师标准>>> 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loa ...

最新文章

  1. MySQL行(记录)的详细操作
  2. Atitit.数据操作dsl 的设计 ---linq 方案
  3. 《剑指offer》数值的整数次方
  4. 力扣53. 最大子序和
  5. PHP composer作用,php-composer作用分析
  6. ios、android、h5、小程序等安卓苹果平台终端兼容问题
  7. JavaList集合根据ParentId递归【无限套娃】
  8. 计算机专业面试银行的自我介绍,银行面试自我介绍1分钟
  9. 【SCIR笔记】ACL2020表格预训练工作速览
  10. Coursera-MachineLearning-Week2编程题目整理
  11. 大神级DIY作品:运动跟随大眼睛,软件硬件结构一个都不能少
  12. 2021铜鼓中学高考成绩查询,江西省宜春市铜鼓中学2020-2021学年高一下学期第一次月考数学(文实验班)试题含答案.doc...
  13. 蓝桥杯单片机CT107D_14_温度传感器DS18B20的基本应用
  14. 《蹭课神器》项目总结
  15. 【pyqt5学习】——对话框QDialog学习(QMessageBox、QColorDialog、QFIleDialog、QFontDialog、QInputDialog)
  16. 《上海市工业互联网创新发展专项支持实施细则》政策解读
  17. 如何实现企业全链路协同,实现企业业绩增长
  18. 171019 逆向-Reversing.kr(MetroApp)
  19. 智慧物业综合解决方案
  20. [翻译] 在 Overleaf 中找不到 PDF 浏览器

热门文章

  1. 【Ansible】3个让Ansible性能飞起的简单优化方案!
  2. nginx 配置文件
  3. 【ASP.NET】js动态生成的控件,在后台获取不到怎么办?
  4. Nginx主主负载均衡架构
  5. 在ubuntu下安显卡驱动
  6. ISA三向外围网络模板说明
  7. SQL经典实例(五)元数据查询
  8. CCU案件例及点评:设计渐进演化的知识结构
  9. MySQL主从配置的一些总结
  10. javascript(1)