我已经在QML(Qt 5的一部分)中编写了几个应用程序。在我之前提出的问题(https://softwareengineering.stackexchange.com/questions/213698/deploying-qt-based-app-on-mac-os-x)中,我找到了在OS X上部署应用程序的解决方案(使用macdeployqt工具)。在Windows上部署Qt 5应用程序
部署在Windows Qt4的应用程序很容易:
- 您在发布模式编译它。
- 您复制了必要的库(DLL)。
- 你测试过了,它工作。
不幸的是,这种方法在Qt5中无法工作(我甚至在qwindows.dll文件中包含了平台文件夹,但它不起作用)。经过几天的尝试,我放弃并编译了一个静态版本的Qt5。
再次,它没有工作。该应用程序在安装了Qt的PC上运行,但在“干净”的PC上崩溃。作为一个侧面说明,Windows 8/8.1系统不会给出关于应用程序崩溃的警告或消息。但是在Windows 7中,一条消息告诉我应用程序崩溃了。
我试过运行Dependency Walker(depends.exe),并且我的应用程序的静态构建中的所有库看起来都很好。
在Windows 8中,我没有收到任何错误。但是在使用depends.exe分析应用程序后,我得到了源自QtGui.dll的访问冲突。确切的错误是
地址0x61C2C000处的“QT5GUI.DLL”中发生第二次机会异常0xC0000005(访问冲突)。
有什么,我失踪(说一个额外的DLL或配置文件)?
应用程序信息:
- 书面和使用Qt 5.2.1
- 编译使用快速/ QML。
- 使用网络模块。
- 使用webkit模块。
- 使用蓝牙模块。
- 的QML文件都写在快速2.2
什么是确切的错误?你有没有发生崩溃转储?你有没有尝试以某种方式分析崩溃转储? –
在Windows 8中,我没有收到任何错误。但是在使用depends.exe分析应用程序后,我得到了源自QtGui.dll的访问冲突。 –
确切的错误是“地址0x61C2C000”QT5GUI.DLL“中发生第二次机会异常0xC0000005(访问冲突)。” –