Linux中设置动态库的路径

news/2024/11/8 14:57:15/

Linux中设置动态库的路径

例如:在Ubantu对项目进行编译的时候出现: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory。
但是在使用 find 去对 libmpc.so.3 库进行查找,发现库又是存在的。这极有可能可能是没有找到库的路径。因此,需要设置LD_LIBRARY_PATH 环境变量。
因为第三方的库并不处于标准的库的搜索路径之下(例如说是 /usr/local/lib ).所以,在进行编译的时候,需要额外的指名 库所在的路径。
库路径的指名方式分为两种:
**1.是在gcc编译的时候,使用-L和-l的方式去指定 库和库的路径:**格式如下:-l 参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。这样的话,一个文件一个文件的设置,太麻烦。
**2.设置 LD_LIBRARY_PATH 变量:**在编译的过程中,会根据 LD_LIBRARY_PATH 变量设置的值找寻找库。 而放在/lib和/usr/lib和/usr/local/lib里的库路径是默认的搜索路径。
设置 LD_LIBRARY_PATH 变量的方式:
1.export LD_LIBRARY_PATH=/usr/local/lib
在终端里运行上面这行命令,再运行这个可执行文件,如果运行正常就说明是这个问题。以上做法,只是临时设置变量 LD_LIBRARY_PATH ,下次开机,一切设置将不复存在;
2.可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。

该文章会更新,欢迎大家批评指正。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器课程:C++服务器


http://www.ppmy.cn/news/93356.html

相关文章

【利用AI让知识体系化】深入浅出Puppeteer

文章目录 1. Puppeteer简介1.1 什么是Puppeteer1.2 它能做什么Puppeteer能够完成以下一些主要的操作:1.3 为什么要使用Puppeteer 2. 安装和配置Puppeteer2.1 安装Puppeteer2.2 配置Puppeteer2.3 第一个Puppeteer程序 3. Puppeteer的基础功能3.1 打开和关闭浏览器3.2…

Pinctrl子系统_01_Pinctrl子系统介绍

本节介绍在Pinctrl子系统中,将会学习哪些内容。 Pinctrl作用 Pinctrl:Pin Controller,顾名思义,就是用来控制引脚的。 一个芯片有成百上千个引脚,这些引用要怎么配置,配置成什么功能,都是通P…

[快速入门前端17] CSS 选择器(6) 选择器总结

基本选择器 选择器说明语法通配符作用范围为所有标签,用于页面整体样式* { color: red }元素作用于同种标签,不能进行差异化样式设定p { color: red }类别作用于我们自行设定的类别,是使用频率最高的选择器.myClass { color: red }ID选取当前…

辅助驾驶功能开发-功能规范篇(24)-1-影子模式功能触发规范

1.影子模式 1.1. 影子模式介绍 影子模式的作用是在人类驾驶员参与的情况下,开启系统中除执行器外的所有模块,不停收集感知数据、道路交通者行为和预测结果,以及系统作出的决策和规划结果,并收集人类的驾驶行为,并将所有数据收集供开发者进行数据的回灌、对比、校验和训练…

15JS06——流程控制-循环

目标: 1、循环 2、for循环 3、双重for循环 4、while循环 5、do while循环 6、continue break 7、命名规范以及语法格式 一、循环 1、循环的目的 可以重复执行某些代码 2、JS中的循环 for循环 while循环 do…while循环 二、for循环 在程序中,一…

基于深度强化学习的目标驱动型视觉导航泛化模型

深度强化学习在目标驱动型视觉导航的泛化 参考论文《Towards Generalization in Target-Driven Visual Navigation by Using Deep Reinforcement Learning》 文章目录 深度强化学习在目标驱动型视觉导航的泛化1. 目标驱动型视觉导航问题2. 创新点和解决的问题2.1 创新点2.2 解…

python爬虫之excel解析详解

Excel是一种数据格式化和存储数据的工具,其表格形式非常适合存储和呈现数据,不少企业和业务都使用Excel来进行数据的存储与处理,因此对Excel解析的需求也越来越高。本文主要介绍Python中如何使用openpyxl解析Excel文件,通过一些实…

第六篇:强化学习策略迭代 通俗解释

你好,我是zhenguo(郭震) 今天,介绍强化学习第6篇:策略迭代 策略迭代是马尔可夫决策过程(MDP)中的一种求解方法,当然也是强化学习常用求解方法。 它的思想可以用通俗的方式解释如下&a…