我已經在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(訪問衝突)。」 –