Ошибка времени выполнения при выполнении exe вручную

У меня есть приложение Qt, которое прекрасно работает, когда я запускаю его из Qt Creator. Однако, запустив его вручную, щелкнув сгенерированный exe, я получаю следующую ошибку:

введите описание изображения здесь

Я бы понял, если бы он попросил недостающие DDL (которые я мог бы затем поместить в ту же папку). Но как мне поступить с этим (в общем)?

PS Это не дает никакого номера строки в моем исходном коде, который я мог бы попробовать проверить это утверждение. Я тоже пытался использовать режим релиза, но та же ошибка.

2 ответа

Решение

Мои qml-файлы не были развернуты должным образом и, следовательно, эта ошибка (это утверждение, вероятно, находится в переменной, хранящей имя основного qml-файла, т.е. это не должна быть пустая строка, как в случае отсутствия main.qml). Размещение файлов qml по правильным путям решило проблему.

Также, как указал @mitch в своем ответе, используйте windeployqt, чтобы выяснить зависимости. Хотя я также понял, что он не охватывает все зависимости (например, время выполнения MSVC и другие файлы, связанные с компилятором). В этом случае запустите средство обхода зависимостей и поместите отсутствующие файлы вручную вместе с исполняемым файлом.

Мы не знаем, в чем проблема с вашим кодом; Вы должны будете использовать отладчик, чтобы выяснить это. Я думаю, что предварительно скомпилированные библиотеки Qt, которые вы загружаете, поставляются с символами отладки, но если они этого не делают, вы всегда можете собрать Qt самостоятельно, чтобы получить их, используя -force-debug-info настроить вариант.

Вы также можете использовать DebugView для просмотра результатов отладки развернутых приложений.

Тем не менее, в общем, вы должны использовать windeployqt инструмент, который включен в Qt.

Страница Qt for Windows - Deployment содержит больше информации о развертывании приложений Qt на компьютерах с Windows, но windeployqt должен делать все что нужно.

Другие вопросы по тегам