我在 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'
以及(没有引号,只是转义空格):
导出 LD_PRELOAD=/home/myuser/MyApp\Test/lib/mylib.so