`

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 则只用于链接时。

分享到:
评论

相关推荐

    06_Path环境变量的配置.avi

    java_Path环境变量的配置

    multi_cuda_exchange.txt

    export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda-...

    ubuntu9.1随手笔记,GRUB修复,GRUB命令行启动,字体安装,flash 乱码,切换用户,eclipse安装,LD_LIBRARY_PATH变量的设置

    ubuntu9.1随手笔记,GRUB引导修复,GRUB命令行启动,字体安装,flash 乱码,切换用户,eclipse安装,LD_LIBRARY_PATH变量的设置,修改系统启动选项菜单的背景图片,remastersys工具包安装

    oracle 使用命令创建oracle数据库

     2、设置环境变量env ORACLE_BASE=/u01/app ORACLE_HOME=$ORACLE_BASE/oracle ORACLE_SID=hsj PATH=$ORACLE_HOEM/bin:$PATH; LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export ORACLE_BASE ...

    boost_1_73_0.tar.gz

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/boost/lib export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/boost/lib export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/boost/include export CPLUS_...

    pyenv-archshell:`pyenv shell` 命令的扩展,允许在必要时设置 LD_LIBRARY_PATH

    pyenv-archshell pyenv shell命令的扩展,允许在必要时设置 LD_LIBRARY_PATH。 这个插件添加了pyenv archshell命令,它是标准pyenv shell命令的包装器。 目前这个插件只对linux有影响。 如果指定了版本, archshell...

    boa开源代码解决cgi依赖库加载失败的问题

    boa开源代码解决cgi依赖库加载失败的问题 int complete_env(request * req) ... char *env = getenv("LD_LIBRARY_PATH"); if (NULL != env) my_add_cgi_env(req, "LD_LIBRARY_PATH", env); ...... }

    SAPJCO3连接配置(sapjco3-linux_x64-3.0.10)

    3.设置环境变量 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/sapjco3.jar LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/amd64/server export CLASSPATH LD_LIBRARY_...

    gdal-2.0.1.tar.gz

    gdal-2.0.1.tar.gz安装包,大家...解决方案:将依赖的动态库和静态库添加到LD_LIBRARY_PATH环境变量中去。 编辑bash的用户配置文件: vim ~/.bashrc 添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

    mujoco环境变量报错:Missing path to your environment variable.

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mujoco200/bin 报错环境 Ubunut18.04 Pycharm中 我已经在~/.bashrc中添加了环境变量 进行了source ~/.bashrc操作 在命令行中可以正确运行官网的测试demo 有...

    no webp-imageio in java.library.path(webp-imageio-0.4.2.jar dll so)

    in java.library.path的解决办法及eclipse配置 java一般使用两个path:classpath 和 ...1:LINUX下的系统变量LD_LIBRARY_PATH来添加java.library.path 2:在vm arguments里添加-Djava.library.path= /usr/local/lib

    解决Ubuntu下使用linuxdeployqt打包Qt程序问题

    写了点Qt界面程序,然而发现很难移植到其他没有安装Qt环境的电脑上运行。查资料了解到,在windows上有...export LD_LIBRARY_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/lib:$LD_LIBRARY_PATH export QT_PLUGIN_PATH=/home/x

    android-x86的glibc

    授人以渔,不如授人以鱼。拿去用吧 由于上传文件大小受限,分成了两个部分,拼好后把tools文件改名为tools.tar.bz2 ...LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/tools/lib gcc -o hello hello.c ./hello

    blob_demo.cpp

    资源中是深度学习caffe的数据结构blob的实例代码,通过下面的命令进行编译 g++ -o blob_demo blob_demo.cpp -...export LD_LIBRARY_PATH=/home/bigmarshal/Documents/deep_learning/caffe/build/lib/:$LD_LIBRARY_PATH

    DBD-Oracle-1.76.tar.gz

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH [root@rhel6 DBD-Oracle-1.76]# perl Makefile.PL [root@rhel6 DBD-Oracle-1.76]# make [root@rhel6 DBD-Oracle-1.76]# make test(可选) [root@...

    apr-iconv-1.2.1.tar.gz 、apr-util-1.5.4.tar.gz、apr-1.5.2.tar.gz

    安装tomcat-native所需模块 tar -xzvf apr-1.5.2.tar.gz cd apr-1.5.2 ./configure make & make install 接着安装apr-util和iconv,方法一样不过....export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

    Tensorflow_Inception_v3_TensorRT:这是在TensorRT上运行Tensorflow Inception v3模型的简单演示

    这是在TensorRT上运行Tensorflow ...export LD_LIBRARY_PATH= $CUDA_LIB : $LD_LIBRARY_PATH CUDA_INC=/usr/local/cuda/include:/usr/local/cuda/samples/common/inc export C_INCLUDE_PATH= $CUDA_INC : $C_INCLUDE_

    linux下的网络调试工具

    32位linux下的网络调试...export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH, 然后打开终端运行进入解压(解压命令 tar -xjf sokit-1.3-linux32.tar.bz2 )目录 ./sokit 即可看到界面。好不容易解决的,大家珍惜

    SATA硬盘仿真模型

    SATA硬盘仿真模型。The xilinx GTP is configured as SATA PHY,and 256MB DDR2 memory(Xilinx XAPP859) is HDD storge space....setenv LD_LIBRARY_PATH $LMC_HOME/lib/linux.lib:$LD_LIBRARY_PATH

    Linux下安装oracle客户端-sqlplus64.zip

    安装步骤 rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm ...export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

Global site tag (gtag.js) - Google Analytics