QT 插件相互依赖
QT Plugin Interdependency
我的应用程序中的某些插件存在问题,我有一个主项目加载了一组插件,以便考虑到它们的依赖性。但是,当我有一个依赖于另一个插件的插件时,我似乎遇到了一些符号 linkage 错误。
实际加载一个插件:
QPluginLoader pluginLoader(itor->PluginPath);
QObject *tempPlugin = pluginLoader.instance();
插件一(首先加载):
#include "PluginInterface.h"
class NewWizardPlugin: public PluginInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "Code.PluginInterface" FILE "NewViewPlugin.json")
Q_INTERFACES(PluginInterface)
public:
NewWizardPlugin();
virtual ~NewWizardPlugin();
};
插件二:
#include "PluginInterface.h"
#include "NewWizardPlugin.h"
class newStandardSubwizard: public PluginInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "Code.PluginInterface" FILE "New_standard_subwizard.json")
Q_INTERFACES(PluginInterface)
public:
newStandardSubwizard();
virtual ~newStandardSubwizard();
};
第二个插件link针对第一个插件的库
我有一些跟踪并且知道它们被加载的顺序是正确的,但是在 QPluginLoader class 上使用 errorString() 函数我知道有一个符号 link 错误.
有没有人有什么想法?
已修复 - 我没有更新 LLD_LIBARY_PATH 以包含动态对象的目录,因此链接器无法找到它们。
我的应用程序中的某些插件存在问题,我有一个主项目加载了一组插件,以便考虑到它们的依赖性。但是,当我有一个依赖于另一个插件的插件时,我似乎遇到了一些符号 linkage 错误。
实际加载一个插件:
QPluginLoader pluginLoader(itor->PluginPath);
QObject *tempPlugin = pluginLoader.instance();
插件一(首先加载):
#include "PluginInterface.h"
class NewWizardPlugin: public PluginInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "Code.PluginInterface" FILE "NewViewPlugin.json")
Q_INTERFACES(PluginInterface)
public:
NewWizardPlugin();
virtual ~NewWizardPlugin();
};
插件二:
#include "PluginInterface.h"
#include "NewWizardPlugin.h"
class newStandardSubwizard: public PluginInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "Code.PluginInterface" FILE "New_standard_subwizard.json")
Q_INTERFACES(PluginInterface)
public:
newStandardSubwizard();
virtual ~newStandardSubwizard();
};
第二个插件link针对第一个插件的库
我有一些跟踪并且知道它们被加载的顺序是正确的,但是在 QPluginLoader class 上使用 errorString() 函数我知道有一个符号 link 错误.
有没有人有什么想法?
已修复 - 我没有更新 LLD_LIBARY_PATH 以包含动态对象的目录,因此链接器无法找到它们。