hlog.async=>_sync=1 SyncLogHandler! 段错误?
1.问题描述
qt5.9.6,在麒麟环境下编译成功,运行程序出现如下错误;

2.解决办法
经过调试,发现动态加载so库的时候,这个路径下没有放入正确的so文件,导致没有加载上so库文件,pDbpluginInstance->initLocalDb(strDbPath)!=0去初始化数据库插件的时候,就会出现一个没有加载库的实例,却调用了初始化接口,导致崩溃;所以加载库之前,先判断下库是否存在。
int DbPlugin::LoadDbPlugin(QString strPath)
{
if (m_isLoaded)
{
LOG_INFO("DbPlugin is loaded already");
return 0;
}
QDir pluginsDir(strPath);
QString strDll = "";
#ifdef WIN32
strDll = pluginsDir.absoluteFilePath("DbPlugin.dll");
#else
strDll= pluginsDir.absoluteFilePath("libDbPlugin.so");
#endif
QPluginLoader loader(strDll);
QObject *plugin = loader.instance();
if (plugin) {
pDbpluginInstance = qobject_cast<DbPluginInterface *>(plugin);
if (pDbpluginInstance==NULL) {
return -1;
}
}
QString strDbPath = pluginsDir.absolutePath();
if (pDbpluginInstance->initLocalDb(strDbPath)!=0)
{
return -1;
}
m_isLoaded = true;
return 0;
}
自己开发了一个股票智能分析软件,功能很强大,需要的关注微信公众号:QStockView

浙公网安备 33010602011771号