Точка входа Qt не найдена в режиме выпуска Visual Studio - PullRequest
0 голосов
/ 16 июня 2020

Приложение My Qt Widgets (Qt 5.15) отлично работает в Qt Creator 4.12.2 с 64-битным компилятором MSVC2019. Используя Qt VS Tools v2.5.1 и тот же компилятор, я смог запустить проект в Visual Studio 2019 в режиме отладки , но когда я пытаюсь запустить проект в режиме выпуска , Я получаю следующее сообщение об ошибке:

Entry Point Not Found. The procedure entry point ?contextMenuEvent@QLabel@@MEAAXPEAVQContextMenuEvent@@@Z could not be located in the dynamic link library C:\...\app1.exe

Я знаю, что есть похожие вопросы (см. здесь и здесь ), но сообщения об ошибках явно указывают на отсутствие. dll, в то время как в моем случае он ссылается на файл .exe. Может кто-нибудь объяснить, почему это происходит и как я могу решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 24 июня 2020

Самым простым решением является сборка непосредственно в каталог bin qt. В VS откройте диалоговое окно Project> Properties, в разделе General / Output Directory введите правильный путь к qt bin (что-то вроде "C: \ Qt \ 5.14.0 \ msvc2017_64 \ bin"). Это должно помочь.

0 голосов
/ 10 июля 2020

У меня была очень похожая проблема, но с QPushButton вместо QLabel. Проблема заключалась в том, что по какой-то причине Visual Studio загружала некоторые библиотек Qt из, казалось бы, случайных мест.

Проверьте вывод отладки и посмотрите, есть ли что-то странное. В моем случае Visual Studio "загружала" Qt5 Gui .dll (среди прочего) из C: \ ProgramData .. \ miktex \ 5.15.0 \ msvc2019_64 \ bin ...

Где это очевидно, не найдется. Итак, проверьте эти странные сообщения, например:

"myprogram.exe" (Win32): Loaded "C:\somewhere\outside\qt\folder\5.15.0\msvc2019_64\bin\Qt5Gui.dll". Symbols loaded.

Папки «C: \where \ outside \ qt \ folder» были на моем пути, поэтому я удалил их, а затем Visual Studio не было проблем с загрузкой dll из нужного места.

0 голосов
/ 16 июня 2020
• 1000 Я не уверен, почему ошибка находится в самом .exe.

Один тупой способ, который вы могли бы протестировать, - это поместить ваш exe вместе со всеми dll из Qt в каталог и посмотреть, не изменится ли что-нибудь.

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

...