在/etc/profile中设定了LD_LIBRARY_PATH的值,但是不生效

clever101
博客专家认证
2020-10-18 10:39:19
大家好!我在/etc/profile中设定了LD_LIBRARY_PATH的值,就是动态库的搜索路径,如下:

LD_LIBRARY_PATH=/opt/plugin/so/:$LD_LIBRARY_PATH

然后运行:source /etc/profile,但是没有效果,so文件还是无法加载。

环境是: centos 7.8, x64
...全文
7483 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wisewoman 2020-10-21
  • 打赏
  • 举报
回复
/etc/profile 里加个export 是可以的。
clever101 2020-10-21
  • 打赏
  • 举报
回复
引用 8 楼 wisewoman 的回复:
Linux加载环境变量的顺序如下: /etc/environment /etc/profile /etc/bash.bashrc /etc/profile.d/***.sh ~/.profile ~/.bashrc 都看看吧,估计有后面的把前面的配置改了
新开一个进程都得重新加载环境变量吗?
wisewoman 2020-10-21
  • 打赏
  • 举报
回复 1
Linux加载环境变量的顺序如下:

/etc/environment
/etc/profile
/etc/bash.bashrc
/etc/profile.d/***.sh
~/.profile
~/.bashrc
都看看吧,估计有后面的把前面的配置改了
clever101 2020-10-21
  • 打赏
  • 举报
回复
引用 6 楼 wisewoman 的回复:
/etc/profile 里加个export 是可以的。
很奇怪,在一个控制台终端里设置了/etc/profile 里加个export 是可以的,但是再新开一个控制台终端,输入命令: echo $LD_LIBRARY_PATH,输出的却是空的。就是说这样设置也只是在一个控制台终端进程内是有效的,新开的控制台进程是无效的,为什么会这样呢?
mouse_zhu 2020-10-19
  • 打赏
  • 举报
回复
ldd 可执行程序 例如 ldd ls
百里杨 2020-10-19
  • 打赏
  • 举报
回复
列出执行main.out程序搜索所需库时需要的路径 LD_DEBUG=libs ./main.out 可以在程序提示找不到库时进行查看搜索路径
百里杨 2020-10-19
  • 打赏
  • 举报
回复
这个不好说,照道理没啥问题,你看看LD_DEBUG=libs ./main.out这命令,搜索so过程中,都搜索了哪些路径,这些路径中一定没有你在LD_LIBRARY_PATH设置的路径。可能是别的什么问题
clever101 2020-10-19
  • 打赏
  • 举报
回复
引用 2 楼 mouse_zhu 的回复:
ldd 可执行程序 例如 ldd ls
编辑完/etc/profile,ldd就是说某个库找不到啊!
clever101 2020-10-19
  • 打赏
  • 举报
回复
引用 1 楼 百里杨 的回复:
列出执行main.out程序搜索所需库时需要的路径 LD_DEBUG=libs ./main.out 可以在程序提示找不到库时进行查看搜索路径
使用export指令进行指定可以,但这个只限于当前进程,我想永久设置。但是通过编辑/etc/profile来设置就是不行。我感觉挺疑惑的。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧