1

我正在为我的应用程序开发一个简单的插件架构。插件是具有已知“获取接口”功能的共享对象。我通过 dlopen/dlsym 等访问 .so。相当标准。我的一些插件有额外的 .so 文件也需要加载。这些文件可以随插件一起提供,但我需要应用程序知道在哪里/如何加载它们。

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

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

4

1 回答 1

1

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

于 2017-07-11T15:33:36.563 回答