library path的设置问题 LD_LIBRARY_PATH SHLIB_PATH LIBPATH

本文主要介绍了在不同UNIX变种如Linux、Solaris、HP-UX和IBM AIX上设置library path的重要性及方法。重点讲解了LD_LIBRARY_PATH变量在Linux和Solaris中的作用,以及如何临时设置它以避免影响其他程序。同时,提到了在64位系统中遇到的问题,如Pro*C和Perl的库兼容性问题,并提供了相应的解决策略。
摘要由CSDN通过智能技术生成

由于平时的工作平台都是linux或unix,所以经常会遇到library path设置错误,导致程序编译或运行错误。所以在不同的平台上,一定要设置正确的library path变量,下面就来总结一下:


SHLIB_PATH 环境变量 [HP-UX]
在 HP-UX 上,该环境变量指定运行时在哪些目录中搜索  应用程序所需的库。


LD_LIBRARY_PATH 环境变量 [Linux 和 Solaris]
在 Linux 和 Solaris 上,该环境变量指定运行时在哪些目录中搜索  应用程序所需的库。  LD_LIBRARY_PATH环境变量主要是用于指定动态链接器(ld)查找ELF可执行文件运行时所依赖的动态库(so)的路径,其内容是以冒号分隔的路径列表。ld链接器将优先在该变量设置的路径中查找,若未找到则在标准库路径/lib和/usr/lib中继续搜索。
        临时设置LD_LIBRARY_PATH环境变量的最佳方式是:在执行你的程序前,先在bash中通过命令行或脚本来设置,这样你的特殊设置对系统的其它程序的运行而言是隔离的,不会影响其他程序对依赖库的查找路径,因为在bash中设置的环境变量只对本次会话有效。在你下次通过SSH工具连接到系统时,新会话的系统环境变量参数不受上次会话的设置影响。


LIBPATH 环境变量 [IBM AIX]
在 IBM AIX 上,该环境变量指定运行时在哪些目录中搜索 应用程序所需的库。


当然在设置的时候,也还要注意32位与64位的问题,之前遇到过:

在Pro*c 编译时报:libclntsh.so: wrong ELF class: E

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值