(二)http://topic.csdn.net/t/20041020/10/3472713.html
请问如何使Linux启动之后就加载LD_LIBRARY_PATH的路径!
楼主bekars(涡轮增压:没有解决不了的问题,因为根本就没有问题)2004-10-20 10:06:43 在 Linux/Unix社区 / 程序开发区 提问
是修改.bash_profile文件吗,我修改了但是启动Linux之后LD_LIBRARY_PATH的路径还是没有,运行程序时有些库文件加载不上! 问题点数:50、回复次数:8Top
1 楼winux0(随缘不变)回复于 2004-10-20 11:20:09 得分 50
记住最后要export LD_LIBRARY_PATHTop
2 楼bekars(涡轮增压:没有解决不了的问题,因为根本就没有问题)回复于 2004-10-20 11:35:34 得分 0
.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export PATH
export LD_LIBRARY_PATH
unset USERNAME
还是不行Top
3 楼cheeralen(嵌入式)回复于 2004-10-20 11:46:58 得分 0
bash不会从profile文件里读取环境变量的
csh才会从profile文件里读取变量
所以你可以修改你的bash为csh!!!Top
4 楼bekars(涡轮增压:没有解决不了的问题,因为根本就没有问题)回复于 2004-10-20 11:57:37 得分 0
楼上的不太明白,能不能说多一些Top
5 楼winux0(随缘不变)回复于 2004-10-20 11:58:16 得分 0
应该不会吧,不然你的export的那些PATH也没有用哦Top
6 楼bekars(涡轮增压:没有解决不了的问题,因为根本就没有问题)回复于 2004-10-20 12:35:29 得分 0
不知道,你可以帮我试试吗?我这里就是不行
.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export PATH
export LD_LIBRARY_PATH
unset USERNAME
(三)http://blog.chinaunix.net/u1/48140/showart_377250.html
使用LD_LIBRARY_PATH
环境变量LD_LIBRARY_PATH用来指定查找共享库时除了默认路径之外的其他路径。(该路径在默认路径之前查找)
移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时我们可以设置LD_LIBRARY_PATH。
例:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/work/lib/
这样就可以使用/work/lib/下的库文件了,运行程序后系统会自动到环境变量LD_LIBRARY_PATH指定的路径中查找其所需的库。
系统查找动态库的顺序
系统先找LD_LIBRARY_PATH下的库再找/lib and /usr/lib等路径下的库,还有/etc/ld.so.conf里指定的路径(如果ld.so.conf存在),man ldconfig for more information
使Linux启动之后就加载LD_LIBRARY_PATH的路径
/etc/rc.d/rc.local文件中加入export LD_LIBRARY_PATH="xxxxx" 即可
如果在链接时使用了"-R"和"-L"选项,则相关动态库的路径将保存在ELF文件中,于
是以后的运行中不再需要设置环境变量去定位动态库。比如,有一个
/usr/local/lib/libfoo.so,而你的bar程序需要这个libfoo.so,编译、链接时最好
这样 :gcc -Wall -pipe -O3 -o bar -R/usr/local/lib -L/usr/local/lib bar.c -lfoo
(#man gcc ,没发现-R或-rpath选项,待查)