Linux:在运行时更改LD_LIBRARY_PATH

时间:2013-07-29 14:07:12

标签: linux dynamic load

我正在为我的应用程序开发一个简单的插件架构。插件是具有已知“获取接口”功能的共享对象。我通过dlopen / dlsym等访问.so。相当标准。 我的一些插件还有额外的.so文件需要加载。这些文件可以附带一个插件,但我需要应用程序知道加载它们的位置和方式。

所以我的问题是:如何将特定插件的目录添加到要查找库的位置列表中?我无法在启动应用程序之前设置LD_LIBRARY_PATH,因为插件将在一段时间后加载。或者,我是否需要每个插件在某种清单文件中显式提供依赖项列表,以便我可以先用dlopen()加载它们?感谢。

编辑:澄清一下,在启动应用程序之前,插件的目录是未知的,因此我当时无法设置LD_LIBRARY_PATH。

1 个答案:

答案 0 :(得分:0)

根据this linux在启动应用程序之前评估LD_LIBRARY_PATH,因此它不知道您在运行时所做的任何更改。