В последние месяцы я создал проект с версией 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 уже должен был это сделать. И я также не мог найти их где-нибудь на моем жестком диске. Я также попробовал третий компилятор, но проблемы не исчезли.
Я искал в Интернете и нашел только людей, у которых были проблемы с точкой входа, отсутствующие в dll Qt или вообще отсутствующие в Qt-Dlls, но я не нашел ничего связанного с моим делом.
Я также пробовал Dependency Walker на каждом исполняемом файле, но он обнаружил еще больше отсутствующих dll, что привело меня к мысли, что исполняемые файлы каким-то образом обрезаны, поэтому я пробовал это снова и снова, но, к сожалению, безуспешно.
Есть ли у кого-нибудь идеи, почему это могло произойти, или какие-либо предложения для меня?
Может быть, я должен что-то изменить в своем проекте, хотя он отлично работает в IDE. Мне просто нужен способ развернуть мой проект Qt любым способом.
РЕДАКТИРОВАТЬ: Сборка с использованием Desktop Kit в Qt Creator с MSVC2017 появилось описанное предупреждение.
При сборке с Mingw32 (Desktop Kit) и с MSVC2017 с использованием UWP Kit в Qt Creator отсутствовала следующая библиотека DLL, которую я нигде не нашел на своем жестком диске: MSVCP140_APP.dll
EDIT2: Я закончил тем, что скачал требуемую dll, чтобы как-то заставить ее работать, но она все равно не работала. Одна сборка, которая требовала, чтобы dll теперь запускалась, но немедленно снова закрывалась, а другая сборка внезапно предупреждала меня о отсутствующей точке входа в процедуру.
РЕДАКТИРОВАТЬ [РЕШЕНИЕ]: Я позволил Qt Creator создать совершенно новый свежий проект и скопировал все файлы из моего старого проекта в новый. После этого я только скопировал все файлы DLL в папку, и это сработало.