LD_LIBRARY_PATH

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

最简单的方法是创建一个shell脚本。

让shell脚本导出新的LD_LIBRARY_PATH变量,然后启动您的应用程序

例如(其中foo是你的应用)

#!/bin/sh LD_LIBRARY_PATH=some_path:$LD_LIBRARY_PATH export LD_LIBRARY_PATH foo 

很简单:

 LD_LIBRARY_PATH=new_path:$LD_LIBRARY_PATH foo 

在bash中工作。 我认为它适用于所有bourne shell衍生产品,但我无法保证。

当然,使用这种方法,您每次都必须键入路径。 要反复这样做,更喜欢格伦的方法 。

需要注意的一件事:您不能在程序中设置LD_LIBRARY_PATH并使其对当前程序有任何影响。 这是因为动态加载程序( ld.so.1或类似的名称)已经加载,并且在运行任何代码之前已经读取并处理了环境变量。 您可以在当前进程的环境中设置它,然后该值将影响任何子进程,并且您可以使用exec()系列函数之一来运行具有环境集的程序。 在极端情况下,您可以重新执行当前程序 – 但这是极端的