当前位置: 首页 > news >正文

动态库的制作与使用及 动态库加载失败解决

加载动态库时有时会出现error while loading shared libraries:libcalc.so:可以通过lld命令查看动态库的依赖关系,发现libcalc.so时not found

原因

查找的优先级是DT_RPATH->LD_LIBRARY_PATH->/etc/ld.so.cache->/lib/,/usr/lib

找不到一个优先级顺位延

所以需要把动态库的路径加载进去

解决方法

一:配置环境变量

把libcalc.so所在的路径配置到环境变量LD_LIBRARY_PATH中去(通过pwd查看绝对路径)

但是这个环境变量只是在这个终端中配置的,当关闭终端时,环境变量就消失了,所以需要配置永久的环境变量

(1)用户级别的配置

进入home桌面,配置.bashrc文件,在文件中在最后一行新开一行加上绝对路径,然后更新文件,在重回,lld发现可以了

(2)系统级别的配置

使用 sudo vim /etc/profile 一样在最后一行插入那个export(省略了)

然后再source /etc/profile 更新一下

在运行main又可以了

二、修改etc/ld.so.cache文件

不能直接打开这个文件  通过sudo vim /etc/ld.so.conf间接修改

直接把路径粘贴在这

然后直接更新  sudo ldconfig

就ok了

其实也可以放到/lib/和/usr/lib中但是里面自带的文件太多了,可能会发生修改系统文件,不推荐

http://www.lryc.cn/news/160115.html

相关文章:

  • 404 not found nginx(dist打包后,刷新和跳转都是404 not found nginx的问题) 解决方案(打包发布在服务器)
  • 《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》全文翻译
  • MySQL——笔试测试题
  • WangEditor在Vue前端的应用
  • 初学python的感受
  • SpringSecurity中注解讲解
  • 朔雪流量复制器的前端
  • Anaconda下 Prophet的安装,pystan和fbprophet的版本问题
  • IntelliJ IDEA 简介
  • 20230904 QT客户端服务器搭建聊天室
  • 吴恩达gradio课程:基于开源LLM(large language model)的聊天应用chatbot
  • 【c++】weak_ptrshared_ptr
  • Init函数和main函数
  • 汇川PLC学习Day1:跑马灯程序编写
  • 【已解决】Unknown initial character set index ‘45‘ received from server
  • Java从入门到精通-数组(二)
  • 深入剖析HTTP和HTTPS代理在爬虫中的应用价值
  • SQL语句分类及编写规范
  • 02-zookeeper分布式锁案例
  • 【Spring传播机制底层原理】
  • python通过tkinter制作词云图工具
  • Java-钉钉订阅事件
  • 【DataV/echarts】vue中使用,修改地图和鼠标点击部分的背景色
  • 系统设计类题目汇总四
  • 【C++心愿便利店】No.5---构造函数和析构函数
  • 微软研究院团队获得首届AI药物研发算法大赛总冠军
  • redis实战篇之导入黑马点评项目
  • 【C++】详解红黑树并模拟实现
  • Matlab图像处理-最大类间方差阈值选择法(Otsu)
  • Spring Cloud(Finchley版本)系列教程(三) 服务消费者(Feign)