由于平时的工作平台都是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