我正在为我的应用程序开发一个简单的插件架构。插件是具有已知“获取接口”功能的共享对象。我通过dlopen / dlsym等访问.so。相当标准。 我的一些插件还有额外的.so文件需要加载。这些文件可以附带一个插件,但我需要应用程序知道加载它们的位置和方式。
所以我的问题是:如何将特定插件的目录添加到要查找库的位置列表中?我无法在启动应用程序之前设置LD_LIBRARY_PATH,因为插件将在一段时间后加载。或者,我是否需要每个插件在某种清单文件中显式提供依赖项列表,以便我可以先用dlopen()加载它们?感谢。
编辑:澄清一下,在启动应用程序之前,插件的目录是未知的,因此我当时无法设置LD_LIBRARY_PATH。