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

LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别

LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下:

 

LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。

 

LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。

 

区别与使用:

开发时,设置LIBRARY_PATH,以便gcc能够找到编译时需要的动态链接库。

发布时,设置LD_LIBRARY_PATH,以便程序加载运行时能够自动找到需要的动态链接库。

GCC里的链接器的选项是 -rpath 和 -rpath-link,看了下 man ld,大致是这个意思:

 

 



 

GCC链接选项-L,-rpath-link和-rpath

-L: “链接”的时候,去找的目录,也就是所有的 -lFOO 选项里的库,都会先从 -L 指定的目录去找,然后是默认的地方。

-rpath_link (或者 -rpath-link):这个也是用于“链接”的时候的,例如你显示指定的需要 FOO.so,但是 FOO.so 本身是需要 BAR.so 的,后者你并没有指定,而是 FOO.so 引用到它,这个时候,会先从 -rpath-link 给的路径里找。
-rpath: “运行”的时候,去找的目录。运行的时候,要找 .so 文件,会从这个选项里指定的地方去找。对于交叉编译,只有配合 --sysroot 选项才能起作用。

也就是说,-rpath指定的路径会被记录在生成的可执行程序中,用于运行时。
-rpath-link 则只用于链接时。

 

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

相关文章:

  • 【沃顿商学院学习笔记】商业基础——Accounting:06财务报表的几大比率知识学习(完)
  • MyEclipse 2017配置Tomcat8
  • mysql PREPARE用法_PHP5 mysqli的
  • matlab分类算法代码,[转载]两种图像分类算法和matlab源代码
  • 常见的Web漏洞——CORS
  • iphone怎么更新9.0系统更新服务器,iOS 9 推送前你必须知道的几件事:iOS 9 升级指南...
  • table 设置边框
  • 直播盒子在海外直播中的关键作用与应用
  • 2006年世界顶级杀毒软件排名
  • JavaSE基础知识(五)--面向对象代码实现收尾(多态概述)
  • 课题分享:物流配送人员车辆调度管理系统,基于java+SSM+mysql
  • 光立方,永远的神!
  • 射频天线设计-窄带阻抗匹配电路设计
  • 怎么下载安装Firebug和使用Firebug
  • Apache和PHP部署
  • 面向食品类目的AI导购对话系统设计与实践
  • jQuery创建多个setInterval函数
  • 智能仓储的实时监控与报警系统
  • JAVA+APPIUM+模拟器实现自动化测试
  • 有哪些可以免费发布信息的网站
  • 程序员必备:阿里巴巴中国站1688.item_get_contact API详解:获取方式与参数一览
  • 基于JSP实现的项目管理平台系统
  • 设计分享|基于51单片机的万年历(汇编)
  • 虚拟化服务器四根网线,立足虚拟化 戴尔4路R905 R910 服务器详细拆解北京dell服务器供应商企业博客...
  • 深度学习笔记10_Pytorch实现车牌识别
  • Html.DropDownList
  • (转)央视二套财富故事会之朱仁民
  • 内网穿透哪家好?要注意什么?
  • 探索高效Hackintosh之旅:600/700系列主板通用EFI配置文件
  • 分享一个好用的添加网络代理的工具SocksCap