加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何转义附加到LD_PRELOAD的库路径中的空格?

发布时间:2020-12-13 23:57:00 所属栏目:Linux 来源:网络整理
导读:我在 Linux上遇到LD_PRELOAD问题.我正在尝试在启动我的应用程序之前加载存在于名称中包含空格的目录中的库: export LD_PRELOAD='/home/myuser/MyApp Test/lib/mylib.so' 但是,路径没有正确使用.它会在空间存在的地方被拆分,因此它会尝试预加载这些: ERROR
我在 Linux上遇到LD_PRELOAD问题.我正在尝试在启动我的应用程序之前加载存在于名称中包含空格的目录中的库:

> export LD_PRELOAD='/home/myuser/MyApp Test/lib/mylib.so'

但是,路径没有正确使用.它会在空间存在的地方被拆分,因此它会尝试预加载这些:

ERROR: ...: object '/home/myuser/MyApp' from LD_PRELOAD cannot be preloaded: ignored
ERROR: ...: object 'Test/lib/mylib.so' from LD_PRELOAD cannot be preloaded: ignored

我已经在“MyApp Test”中逃避了这个空间.通过这条路径的正确方法是什么?

编辑:根据建议导出没有转义空格,呈现相同的结果:

export LD_PRELOAD=’/home/myuser/MyApp Test/lib/mylib.so’

除了(没有引号,只是转义空间):

export LD_PRELOAD=/home/myuser/MyApp Test/lib/mylib.so

解决方法

动态加载器可能只是在空间上做了一个天真的分裂,在这种情况下,它不可能让它将空间视为路径的一部分.

您可以通过创建要预加载的库的符号链接来解决此问题,该符号链接不包含任何空格.

编辑:

由http://ubuntuforums.org/showthread.php?t=1142062确认

As other variables like PATH or LD_LIBRARY_PATH,this variable may contain list of library names separated by colons. But… for compatibility with legacy systems it is possible to separate LD_PRELOAD elements by spaces. And older systems did not understand escaping so it turns out it is impossible to put full library paths into LD_PRELOAD if they contain spaces.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读