Развертывание Qt-Application не работает. Отсутствует точка входа и DLL

В последние месяцы я создал проект с версией Qt-Creator 4.7.0, версией Qt 5.11.1 (версия с открытым исходным кодом).

Теперь я попытался развернуть его, следуя Qt doc и построение проекта с помощью компилятора MSVC2017-64bit, а также запуск windeployqt.exe впоследствии для сгенерированного исполняемого файла.

Когда я попытался запустить исполняемый файл после того, как программа закончила копирование необходимых папок в папку, появилось предупреждение:

Точка входа?
eventFilter @ QAbstractItemView @@ MEAA_NPEAVQObject @@ PEAVQEvent @@@ Z не найден в DLL «my / project / path / releasefolder / project.exe».

Мне кажется, что-то не так с Qt-объектами, которые я использую в своем проекте, но я не смог ничего найти, так как он все еще работал безупречно в Qt-Creator.

Я подумал, что это может быть из-за проблем с компилятором, поэтому я изменил его на mingw32, который я тоже пытался развернуть таким же образом. Но каким-то образом в этом случае предупреждение исчезло, но многие dll все еще отсутствовали, хотя windeployqt.exe уже должен был это сделать. И я также не мог найти их где-нибудь на моем жестком диске. Я также попробовал третий компилятор, но проблемы не уходили.

Я искал в Интернете и нашел только людей, у которых были проблемы с точкой входа, отсутствующими в Qt dll или отсутствующими в целом Qt-Dlls, но я не нашел ничего связанного с моим делом.

Я также пробовал Dependency Walker на каждом исполняемом файле, но он обнаружил еще больше отсутствующих dll, что заставило меня поверить, что исполняемые файлы каким-то образом обрезаны, поэтому я пробовал это снова и снова, но, к сожалению, безуспешно.

У кого-нибудь есть идеи, почему это может произойти, или какие-либо предложения для меня?
Может быть, я должен что-то изменить в своем проекте, даже если он отлично работает в IDE. Мне просто нужен способ развернуть мой проект Qt любым способом.

РЕДАКТИРОВАТЬ: Соберите, используя Desktop Kit в Qt Creator с MSVC2017, появилось описанное предупреждение.
При сборке с Mingw32 (Desktop Kit) и с MSVC2017 с использованием UWP Kit в Qt Creator отсутствовала следующая библиотека DLL, которую я нигде не нашел на своем жестком диске: MSVCP140_APP.dll

РЕДАКТИРОВАТЬ 2: Я заканчивал тем, что загружал требуемую dll, чтобы как-то заставить это работать, но это все еще не работало. Одна сборка, которая требовала, чтобы dll теперь запускалась, но немедленно снова закрывалась, а другая сборка внезапно предупреждала меня о отсутствующей точке входа в процедуру.

РЕДАКТИРОВАТЬ [РЕШЕНИЕ]: Я позволил Qt Creator создать совершенно новый свежий проект и скопировал все файлы из моего старого проекта в новый. После этого я только скопировал все файлы DLL в папку, и это сработало.

1

Решение

Вместо того, чтобы полагаться на windeploy, вручную добавьте dll. Я предполагаю, что вы создали проект, используя mingw. Предполагая, что вы используете Qt 5.11.1, перейдите к
C: \ Qt \ Qt5.11.1 \ 5.11.1 \\ bin \, скопируйте все файлы dll и вставьте их в исполняемую папку. Также скопируйте все каталоги из папки плагинов (в / plugins) и вставьте в вашу папку. Теперь запустите приложение, не закрывайте приложение. Теперь удалите все файлы из вашей исполняемой папки. Один, который не используется, удаляется, а остальные остаются. Я предполагаю, что вы делаете это на целевом компьютере. Это может помочь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector