C++ QT插件互依性

C++ QT插件互依性,c++,qt,dynamic,plugins,C++,Qt,Dynamic,Plugins,我的应用程序中的一些插件有问题,我有一个主项目,加载一组插件,以便考虑它们的依赖关系。然而,当我有一个插件依赖于另一个插件时,我似乎得到了一些符号链接错误 插件的实际加载: QPluginLoader pluginLoader(itor->PluginPath); QObject *tempPlugin = pluginLoader.instance(); #include "PluginInterface.h" class NewWizardPlugin: public Plugi

我的应用程序中的一些插件有问题,我有一个主项目,加载一组插件,以便考虑它们的依赖关系。然而,当我有一个插件依赖于另一个插件时,我似乎得到了一些符号链接错误

插件的实际加载:

 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();
};
插件一(先加载):

 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();
};
插件二:

 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();
};
第二个插件链接第一个插件的库

我有一些跟踪,知道它们加载的顺序是正确的,但是在QPluginLoader类上使用errorString()函数,我知道有一个符号链接错误


有人有什么想法吗?

修复-我没有更新LLD_LIBARY_PATH以包含动态对象的目录,这样链接器就找不到它们了