在类中声明QMap类型静态变量,并且在方法中使用该变量时,这个类所在的so库,无法被动态加载
类的声明如下:
class PluginManager
{
public:
PluginManager();
public:
static IDevicePlugin* GetPlugin(QString type,QString deviceId);
private:
// static PluginManager* inst;
static void LoadPlugin(QString deviceLibName);
static void InitPlugin(QString type,IDevicePlugin &devicePlugin);
static QMap<QString, IDevicePlugin*> pluginMap1;
};
共有三个工程
1.主工程
2.DHSocket
3.DHCore
加载顺序如下:
主工程通过QLibrary.load加载DHSocket库,SHSocket依赖DHCore库
目前加载DHSocket库时报错 ,无法打开共享对象文件: 没有那个文件或目录
在DHCore库中PluginManager去掉QMap声明后正常