当执行函数动态链接.so时,如果从文件不在缺省目录’/lib’and’/usr/lib’。那么就需要指定环境变量LD_LIBRARY_PATH。

假如现在需要在已有的环境变量上添加新的路径名,在linux下可以采用export命令来设置这个值,在终端输入:
vim ~/.bashrc
在bashrc文件最后添加下面的export:
export LD_LIBRARY_PATH=/opt/au1200/bin:$LD_LIBRARY_PATH
然后保存退出,
source ~/.bashrc

然后在输入export就会显示是否设置正确。

export方式在重启后失效,想要永久添加可以vim /etc/bashrc,修改其中的LD_LIBRARY_PATH变量。
例如:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/au1200/bin。

PATH: 可执行程序的查找路径
查看当前环境变量:
echo P A T H 设 置 : 方 法 一 : e x p o r t P A T H = P A T H : / X X X 但 是 登 出 后 就 失 效 方 法 二 : 修 改   / . b a s h r c 或   / . b a s h p r o f i l e 或 系 统 级 别 的 / e t c / p r o f i l e 1. 在 其 中 添 加 例 如 e x p o r t P A T H = / o p t / A c t i v e P y t h o n − 2.7 / b i n : PATH 设置: 方法一:export PATH=PATH:/XXX 但是登出后就失效 方法二:修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile 1. 在其中添加例如export PATH=/opt/ActivePython-2.7/bin: PATH:exportPATH=PATH:/XXX /.bashrc /.bashprofile/etc/profile1.exportPATH=/opt/ActivePython2.7/bin:PATH
2. source .bashrc (Source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
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命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
方法三:这个没有修改LD_LIBRARY_PATH但是效果是一样的实现动态库的查找,
1. /etc/ld.so.conf下面加一行/usr/local/mysql/lib
2. 保存过后ldconfig一下(ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.)
方法三设置稍微麻烦,好处是比较不受用户的限制。
例如:
对于用户production的LD_LIBRARY_PATH进行分析如下:
1、production@Africa:~> echo L D L I B R A R Y P A T H / h o m e / p r o d u c t i o n / c p s t / c p t o o l s / l i b : / h o m e / p r o d u c t i o n / c p s t / c a m p o s t / l i b : / h o m e / p r o d u c t i o n / t u x e d o / l i b : / h o m e / p r o d u c t i o n / t u x e d o / j r e / l i b / a m d 64 / s e r v e r : / h o m e / p r o d u c t i o n / t u x e d o / j r e / j r e / b i n : / u s r / l i b : / u s r / l i b 64 : / l i b : / l i b 64 : / u s r / l o c a l / l i b : / u s r / l o c a l / l i b 64 : / o r a c l e / p r o d u c t / 11 g R 2 / d b / l i b : / o r a c l e / p r o d u c t / 11 g R 2 / d b / c t x / l i b 2 、 查 看 . p r o f i l e : . p r o f i l e 中 有 : .   / c p s t / c a m p o s t / c o n f i g / s e t e n v , 说 明 用 户 启 动 是 运 行 脚 本 s e t e n v 。 3 、 s e t e n v 中 有 : e x p o r t C A M P O S T H O M E = LD_LIBRARY_PATH /home/production/cpst/cptools/lib:/home/production/cpst/campost/lib:/home/production/tuxedo/lib:/home/production/tuxedo/jre/lib/amd64/server:/home/production/tuxedo/jre/jre/bin:/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:/oracle/product/11gR2/db/lib:/oracle/product/11gR2/db/ctx/lib 2、查看.profile: .profile中有: . ~/cpst/campost/config/setenv,说明用户启动是运行脚本setenv。 3、setenv中有: export CAMPOST_HOME= LDLIBRARYPATH/home/production/cpst/cptools/lib:/home/production/cpst/campost/lib:/home/production/tuxedo/lib:/home/production/tuxedo/jre/lib/amd64/server:/home/production/tuxedo/jre/jre/bin:/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:/oracle/product/11gR2/db/lib:/oracle/product/11gR2/db/ctx/lib2.profile.profile. /cpst/campost/config/setenvsetenv3setenvexportCAMPOSTHOME=HOME/cpst/campost
export CPTOOLS_ROOT= H O M E / c p s t / c p t o o l s e x p o r t L D L I B R A R Y P A T H = HOME/cpst/cptools export LD_LIBRARY_PATH= HOME/cpst/cptoolsexportLDLIBRARYPATH=CPTOOLS_ROOT/lib: C A M P O S T H O M E / l i b : CAMPOST_HOME/lib: CAMPOSTHOME/lib:LD_LIBRARY_PATH
4、setenv中有$LD_LIBRARY_PATH,进root查看:
(1)Africa:~ # echo L D L I B R A R Y P A T H / u s r / l i b : / u s r / l i b 64 : / l i b : / l i b 64 : / u s r / l o c a l / l i b : / u s r / l o c a l / l i b 64 : / o r a c l e / p r o d u c t / 11 g R 2 / d b / l i b : / o r a c l e / p r o d u c t / 11 g R 2 / d b / c t x / l i b ( 2 ) e t c / p r o f i l e 中 有 : e x p o r t L D L I B R A R Y P A T H = / u s r / l i b : / u s r / l i b 64 : / l i b : / l i b 64 : / u s r / l o c a l / l i b : / u s r / l o c a l / l i b 64 : LD_LIBRARY_PATH /usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:/oracle/product/11gR2/db/lib:/oracle/product/11gR2/db/ctx/lib (2)etc/profile中有: export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64: LDLIBRARYPATH/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:/oracle/product/11gR2/db/lib:/oracle/product/11gR2/db/ctx/lib2etc/profileexportLDLIBRARYPATH=/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64:LD_LIBRARY_PATH
(3)/etc/profile.d/oracle.sh中有:
LD_LIBRARY_PATH=KaTeX parse error: Expected '}', got 'EOF' at end of input: …_LIBRARY_PATH:+LD_LIBRARY_PATH:} O R A C L E H O M E / l i b : ORACLE_HOME/lib: ORACLEHOME/lib:ORACLE_HOME/ctx/lib

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐