LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别

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

LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录):

export LIBRARY_PATH=LIBDIR1:LIBDIR2:$LIBRARY_PATH

LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录):

export LD_LIBRARY_PATH=LIBDIR1:LIBDIR2:$LD_LIBRARY_PATH

举个例子,我们开发一个程序,经常会需要使用某个或某些动态链接库,为了保证程序的可移植性,可以先将这些编译好的动态链接库放在自己指定的目录下,然后按照上述方式将这些目录加入到LD_LIBRARY_PATH环境变量中,这样自己的程序就可以动态链接后加载库文件运行了。

区别与使用:

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

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

时间: 2024-10-18 16:43:52

LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别的相关文章

LD_LIBRARY_PATH 环境变量

Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径.(该路径在默认路径之前查找) 移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中. 当执行函数动态链接.so时,如果此文件不在缺省目录下'/usr/local/lib' and '/usr/lib'. 那么就需要指定环境变量LD_LIBRARY_PATH 假如现在需要在已有的环境变量上添加新的路径名,则

全局变量和环境变量的区别

全局变量:启动脚本了.在各线程,以及主程序中.可以互相传递值.每次启动脚本,初始值都一样.环境变量:启动脚本了.在各线程,以及主程序中.可以互相传递值.每次启动脚本,初始值是上次停止脚本时的值. 例子:Global 全局变量Dimenv 环境变量 全局变量 = 全局变量 + 1环境变量 = 环境变量 + 1TracePrint 全局变量TracePrint 环境变量结果是:启动几次脚本.全局变量的值,输出都是1环境变量的值,输出都是上次停止脚本时的值 +1

Java配置的环境变量的区别作用

1.看到<疯狂Java讲义>第三版中讲配置环境变量,1.4节和1.5节,只配置了Path,并且运行成功: 疑问:只需要配置Path吗? 2.百度搜到了如下链接,对以上问题进行解释:如果只在DOS控制台中进行编译执行,配置Path环境变量就够了: JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 3.<疯狂Java讲义>第三版1.5.4节讲到,如果使用1.5以上版本的JDK,即使不设置CLASSPATH,也可以正常编译执行Java程序: 1.5以后的版本,会自

GCC相关的环境变量

介绍GCC在编译阶段和程序运行阶段用到的环境变量. GCC编译时用到的环境变量 GCC编译时用到的变量. C_INCLUDE_PATH GCC编译时查找头文件的目录列表.比如: echo $C_INCLUDE_PATH # outputs ## /usr/include:/usr/local/include CPLUS_INCLUDE_PATH 类似C_INCLUDE_PATH,适用于g++. LIBRARY_PATH gcc和g++在编译的链接(link)阶段查找库文件的目录列表,比如: ec

环境变量LD_LIBRARY_PATH的传递

http://bbs.chinaunix.net/thread-3680861-1-1.html execv明显没有传环境变量,execle或execve才会带在启动shell设置的LD_LIBRARY_PATH根本传不到b程序 http://bbs.pediy.com/thread-217130.htm 为了使 Set-UID 程序更加安全,不受LD_LIBRARY_PATH环境变量的影响, 运行时的链接器或加载器(ld.so)会忽略环境变量,如果程序是个 Set-UID 程序. http:/

linux 环境变量设置方法总结(PATH/LD_LIBRARY_PATH)

http://blog.csdn.net/wangeen/article/details/8159500 设置 Linux 的 LD_LIBRARY_PATH 变量 http://www.cnblogs.com/trying/archive/2013/06/07/3123577.html LD_LIBRARY_PATH环境变量的设置 http://james23dier.iteye.com/blog/763274 程序运行时出现“cannot open shared object file”问题

linux环境变量配置总结

LD_LIBRARY_PATH: 动态库的查找路径设置:方法一: export  LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 但是登出后就失效方法二: 修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile         1. 在其中添加例如export PATH=/opt/ActiveP/lib:$LD_LIBRARY_PATH         2. source .bashrc  (Source命令也称为“点命令”,也就是一

gcc编译过程、C语言编译过程分析、环境变量设置、linux文件夹结构和用途介绍、常用文件和目录的操作命令、文件类型

参考链接:http://www.cnblogs.com/ggjucheng/archive/2011/12/14/2287738.html http://blog.csdn.net/novrose/article/details/7670477 http://blog.sina.com.cn/s/blog_7d5d42b40100ulqn.html 一.大小写后缀的区别 .s     汇编语言源程序;汇编.S     汇编语言源程序;预处理,汇编 小写的s文件,在后期阶段不在进行预处理操作,所以

Linux下查看进程(程序)启动时的环境变量

背景: 因最近试安装Linux下的jira,有一个中文插件安装后,一旦设置开机启动后,它是英文,而在终端再重新启动一次后呢,似乎插件生效,它又恢复为正常中文界面,我首先想这这涉及到一个环境变量的问题,因为在我设置开机启动的服务时用service jira start出现找不到一些变量,如:获取不到java的home目录,提示找不到,为此,我加上了java的环境变量开机启动Ok了,但是英文,我对英文认识少,但还是想用中文,否则插件就等于白安了. 为此,需要弄清这两者的环境变量的区别在哪儿,如何查看