- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]ARM-linuxfedora随笔
LD_LIBRARY_PATH环境变量的设置
文章分类:操作系统
在linux下的编程,毫无疑问的迟早都要用到LD_LIBRARY_PATH这个环境变量,不过这个环境变量是基于shell的,也就是说只有在当前设置了的shell里才会有作用,因此每次打开新的shell运行程序不停地设置LD_LIBRARY_PATH,是一件非常麻烦的事情,所以我们就会想有不有什么一劳永逸地方法,使得设置之后就不用再去设置了?答案是肯定的,即在~/目录下打开.bash_profile文件,设置环境变量如下:
Java代码 ?
LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH ??
export?LD_LIBRARY_PATH??
LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
?那么以后打开新的shell执行程序是,再也不用每次打开shell就设置LD_LIBRARY_PATH环境变量了。
附:
linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/ld.so.conf 或者 使用-R选项)
?
今天下午尝试使用libosip2,安装比较简单,按照自带的help文档里面的操作进行即可。
$mkdir linux-build?
$cd linux-build
$../libosip2-2.2.0/configure
$make ? ? ? ? ? ? ? ? ? ? ? ? ?(最后2步要在管理员权限下执行)
# make install?
完成之后,会在/usr/local/lib路径下生成一些lioosipXXX.so的文件,在/usr/local/include下生成关于 osip的头文件。
为了测试安装是否正确,在eclipse下建了个测试项目,写了很简单的代码:
?
然后查到可能是因为共享库设置的问题:
下面的几段是转载的,看了之后明白linux怎么找到共享库的
===========================================================================================
Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。
但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢?
目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。
传统上,Linux 的先辈 Unix 还有一个环境变量:LD_LIBRARY_PATH 来处理非标准路经的共享库。ld.so 加载共享库的时候,也会查找这个变量所设置的路经。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib
export LD_LIBRARY_PATH
但是,有不少声音主张要避免使用 LD_LIBRARY_PATH 变量,尤其是作为全局变量。这些声音是:
* LD_LIBRARY_PATH is not the answer - /articles/linkers.badldlibrary.html
* Why LD_LIBRARY_PATH is bad - /UnixResource_dir/_/ldpath.html?
* LD_LIBRARY_PATH - just say no - /rie/date解决这一问题的另一方法是在编译的时候通过 -Rpath 选项指定 run-time path。
1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library 会找不到
2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到。
比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的 library才能在程序运行时被找到。
3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可
您可能关注的文档
最近下载
- (高清版)B 26410-2011 防爆通风机.pdf VIP
- 新技术揭细菌生物被膜结构细节.pdf VIP
- 国家标准 GBT 895.2-1986 轴用钢丝挡圈.pdf VIP
- 景观标准做法手册(硬景篇).docx VIP
- HGT 3973-2023 一般用途钢丝绳芯阻燃输送带.pdf VIP
- 2023-2024学年浙江省嘉兴市高一下学期6月期末地理试题(解析版).docx VIP
- 2025年山东黄金集团井下技能工人招聘(2025人)笔试历年参考题库附带答案详解(10卷合集).docx
- SL 339-2006水库水文泥沙观测规范.pdf
- 抽搐护理常规.pptx
- 深圳市南山外国语学校新初一分班英语试卷含答案.doc VIP
文档评论(0)