Вот все, что я знаю о развертывании Qt и проблемах с Windows.
- Проверьте, не содержит ли конфигурация выпуска вашего проекта ссылки на какие-либо отладочные версии библиотек .
- Создайте свое приложение в режиме выпуска. Используйте Rebuild , если сомневаетесь. См. Окно вывода компиляции в IDE, какие пути он на самом деле использует.
- Используйте инструмент windeployqt , чтобы автоматически скопировать все необходимые библиотеки Qt в папку исполняемого файла. Убедитесь, что вы используете windeployqt.exe из правильной папки . Например, в настоящее время у меня есть одна версия фреймворка Qt, но две версии windeployqt: для компиляторов x86 и x64 . Если у вас установлено более одной версии Qt, у вас может быть несколько версий инструмента.
.
C:\Qt\Qt5.14.1\5.14.1\msvc2017\bin\windeployqt.exe
C:\Qt\Qt5.14.1\5.14.1\msvc2017_64\bin\windeployqt.exe
Скопируйте библиотеки компилятора в папку выпуска. Убедитесь, что вы копируете библиотеки из того компилятора, который вы использовали для сборки.
Скопируйте все необходимые дополнительные сторонние динамические библиотеки c. Убедитесь, что это не отладочные версии.
Если проблема не устранена, нажмите Ctrl+C
, когда сообщение об ошибке активно. Он скопирует весь текст из окна сообщения. Вставьте основную часть сообщения в Google.
Если проблема не устранена, откройте файл .exe в некотором средстве просмотра dll-зависимостей. Вот как я могу это увидеть в Lister . Обратите внимание, что такой инструмент покажет вам не только отсутствующие dll, , но и полный путь для каждой dll, которую фактически использует ваш исполняемый файл. Более мощный инструмент - Dependency Walker .
Убедитесь, что ваше приложение не пытается записать что-либо в защищенную системой папку, такую как c:\Program Files\
, без соответствующих привилегий.
Если проблема не устранена максимально упростит ваш проект . Запустите Release для пустого проекта. Затем добавьте модули, функции и библиотеки.
Если все хорошо, протестируйте приложение на полностью чистой виртуальной машине.
Редактировать. Я гуглю ваш текст ошибки и обнаружил:
https://android.developreference.com/article/11361766/Qt5+deployment+%E2%80%9Cprocedure+entry+point+could+not+be+located%E2%80%9D
Проблема заключалась в том, что windeployqt был невозможно найти г cc по какой-то причине. Я добавил его в свой путь из cmd с помощью SET PATH =% PATH%; C: \ Qt \ Tools \ mingw530_32 \ bin. После того, как я снова запустил windeployqt, мне не пришлось копировать libgcc_s_dw2-1.dll и libwinpthread-1.dll вручную, и он использовал правильный Qt5Core.dll, поскольку приложение теперь работает нормально.
Правка2. Лишний предмет удален.