Qt GUI程序封成动态库方式,供其他非Qt程序加载使用时,遇到一个GUI初始化并显示时,大概10s后程序崩溃的问题,调用栈显示崩溃在主线程的NSPersistentUIRequiresSecureCoding函数调用中,如下图所示:

经过排查以及互联网搜索,发现了Qt论坛上有人问到了类似问题:https://forum.qt.io/topic/159548/building-a-dll-on-macos-for-a-non-qt-application/7,原来Qt GUI在以库方式加载使用时,还要设置额外的初始化标识:
1 2 | QGuiApplication::setAttribute(Qt::AA_PluginApplication); QGuiApplication::setQuitOnLastWindowClosed( false ); |
主要是上面的Qt::AA_PluginApplication,看来Qt内部有针对这种plugin方式使用的特殊处理逻辑,加上这个attribute后,再次测试,就不再崩溃了。
博主友情提示:
如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。
加载更多