Я написал несколько приложений в QML (часть Qt 5). В вопросе, который я сделал ранее (https://softwareengineering.stackexchange.com/info/213698/deploying-qt-based-app-on-mac-os-x), я нашел решение для развертывания моего приложения в OS X (используя инструмент macdeployqt).
Развертывание приложений Qt4 в Windows было легко:
- Вы скомпилировали его в режиме выпуска.
- Вы скопировали необходимые библиотеки (DLL).
- Вы протестировали и сработали.
К сожалению, этот подход не работал в Qt5 (я даже включил папку платформ с файлом qwindows.dll, и это не сработало). После нескольких дней попыток я сдался и составил статическую версию Qt5.
Опять же, это не сработало. Приложение работает на ПК с установленной Qt, но он падает на "чистых" ПК. В качестве примечания, системы Windows 8/8.1 не дают предупреждения или сообщения, уведомляющего меня о сбое приложения. Но в Windows 7 сообщение уведомляет меня о том, что приложение потерпело крах.
Я попытался запустить Dependency Walker (depend.exe), и все библиотеки в статической сборке моего приложения выглядели прекрасно.
В Windows 8 я не получаю никаких ошибок. Но после профилирования приложения в файле зависит .exe, я получаю нарушение доступа, происходящее из QtGui.dll. Точная ошибка
Второе исключение вероятности 0xC0000005 (Нарушение доступа) произошло в "QT5GUI.DLL" по адресу 0x61C2C000.
Есть ли что-то, что мне не хватает (скажем, дополнительный DLL или файл конфигурации)?
Информация о приложении:
- Написано и скомпилировано с Qt 5.2.1
- Использует Quick/QML.
- Использует сетевой модуль.
- Использует модуль webkit.
- Использует модуль bluetooth.
- Файлы QML написаны в Quick 2.2