LD_LIBRARY_PATH

时间:2009-05-06 16:40:09

标签: c

我可以为单个应用程序设置LD_LIBRARY_PATH吗?  我正在调查系统调用失败,所以有什么办法可以设置使用LD_LIBRARY_PATH设置设置正确的路径吗?

3 个答案:

答案 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