library path的设置问题 LD_LIBRARY_PATH SHLIB_PATH LIBPATH
来源:互联网 发布:php模拟post提交 编辑:程序博客网 时间:2024/05/03 23:46
由于平时的工作平台都是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: ELFCLASS64 错误
出现在这种情况一般来说是由于当前的系统是64位,用的是64位的库进行编译的所以要修改一下要是用32位的lib
ORALIB = ${ORACLE_HOME}/lib
改为
ORALIB = ${ORACLE_HOME}/lib32
同是改一下.profile 里的
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:/usr/sfw/lib
改为
LD_LIBRARY_PATH=$ORACLE_HOME/lib32:/lib:/usr/lib:/usr/local/lib:/usr/sfw/lib
这样修改完之后在 make 的时候就不会出现在 那个错误了
以下是在sunrise 2.5 linux 上 run DBA的脚本出现的问题,
Perl Information:
Version: 5.8.7
install_driver(Oracle) failed: Can't load '/app/arborperl/5.8.7/lib/site_perl/5.8.7/x86_64-linux/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /app/arborperl/5.8.7/lib/5.8.7/x86_64-linux/DynaLoader.pm line 230.
at (eval 7) line 3
Compilation failed in require at (eval 7) line 3.
Perhaps a required shared library or dll isn't installed where expected
at ./run_dba.pl line 5003
这个也是64位的问题,要用64为的lib,所以设置以下环境变量后,程序可以运行:
setenv PATH /app/arborperl/5.8.7-64/bin:${PATH}
setenv LD_LIBRARY_PATH /app/arborperl/5.8.7-64/lib:$LD_LIBRARY_PATH
- library path的设置问题 LD_LIBRARY_PATH SHLIB_PATH LIBPATH
- LD_LIBRARY_PATH与LIBPATH
- LD_LIBRARY_PATH[Add Qt Creator library path]
- LD_LIBRARY_PATH设置问题
- LD_LIBRARY_PATH环境变量的设置
- LD_LIBRARY_PATH环境变量的设置
- LD_LIBRARY_PATH的设置
- LD_LIBRARY_PATH环境变量的设置
- LD_LIBRARY_PATH环境变量的设置
- LD_LIBRARY_PATH环境变量的设置
- LD_LIBRARY_PATH环境变量的设置
- cuda 的PATH ,LD_LIBRARY_PATH的添加
- LD_LIBRARY_PATH的环境变量的设置
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- 求方程的解
- Android绘图机制(三) ViewGroup类的延伸
- 【SQL数据库】【软考】主键、候选键、超键、全码
- leetcode - Decode Ways
- 奥迪a4因安全气囊问题全球召回
- library path的设置问题 LD_LIBRARY_PATH SHLIB_PATH LIBPATH
- java运行库和JDK、java虚拟机有什么区别!
- 计算机是如何启动的?
- 人工智能——知识的表示
- (三)underscore.js框架Objects类API学习
- Error: “NULL” : 未声明的标识符 解决方法
- Java File
- hdu3397 线段树
- Android AIDL使用详解