我可以为单个应用程序设置LD_LIBRARY_PATH吗? 我正在调查系统调用失败,所以有什么办法可以设置使用LD_LIBRARY_PATH设置设置正确的路径吗?
答案 0 :(得分:11)
最简单的方法是创建一个shell脚本。
让shell脚本导出新的LD_LIBRARY_PATH变量,然后启动应用程序
e.g。 (foo是你的应用程序)
#!/bin/sh
LD_LIBRARY_PATH=some_path:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
foo
答案 1 :(得分:7)
简单如下:
LD_LIBRARY_PATH=new_path:$LD_LIBRARY_PATH foo
在bash中有效。我认为它适用于所有bourne shell派生词,但我无法保证。
当然,使用这种方法,您必须在每个时间键入路径。要反复执行此操作,请更喜欢Glen's approach。
答案 2 :(得分:5)
需要注意的一个问题是:您无法在程序中设置LD_LIBRARY_PATH
并使其对当前程序产生任何影响。这是因为动态加载程序(ld.so.1
或某些类似的名称)已经加载,并且在运行任何代码之前已经读取并处理了环境变量。您可以在当前进程的环境中设置它,然后该值将影响任何子进程,您可以使用exec()
系列函数之一来运行具有环境集的程序。在极端情况下,您可以重新执行当前程序 - 但这是 extreme !