在linux下设置共享库路径

 

 

1定义

Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。(该路径在默认路径之前查找)

移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中

2示例

当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib’ and ‘/usr/lib’.

那么就需要指定 环境变量 LD_LIBRARY_PATH
假如现在需要在已有的 环境变量 上添加新的 路径 名,则采用如下方式:
LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的 路径 串)
(注:GNU系统可以自动添加在 /etc/ld.so.conf文件中来实现 环境变量 的设置)
 

3设置方法

由于linux的shell版本不一样,各个版本的语法有差异。兼容性不好。

3.1:

以下是bash的设置方法。

在linux下可以用export命令来设置这个值,比如

在linux终端下输入:export LD_LIBRARY_PATH=/opt/au1200_rm/build_tools/bin: $LD_LIBRARY_PATH:
然后再输入:export
即会显示是否设置正确
export方式在重启后失效,所以也可以用 vim /etc/bashrc ,修改其中的LD_LIBRARY_PATH变量。
例如:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/au1200_rm/build_tools/bin
3.2:
以下是csh的设置方法
setenv  LD_LIBRARY_PATH   $LD_LIBRARY_PATH:/opt/au1200_rm/build_tools/bin
 
 
4:用列
 

#!/bin/bash
#set the path of lib for tool

if [ $SHELL = "/bin/bash" ] ; then
 echo "BASH" 
fi

-------------------------------------------------------------------------

#!/bin/csh

if ( "$SHELL" == "/bin/csh" )  then
    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:./
endif

 

5:总结,各个版本的shell的语法有差异。不兼容。一般情况下。列:在bash上执行用csh语法写的脚本会出错。
但是有个神奇的用法:可以在bash脚本上调用并执行用csh语法写的脚本。反之,也可。
列:
 

#!/bin/bash
#set the path of lib for gentdefdatatool

if [ $SHELL = "/bin/bash" ] ; then
   echo "BASH" 

   ./.debugcsh 

   echo "CSH  END"
 fi

 #.debugcsh :是用csh语法写的脚本。

 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值