Итак, у меня есть Visual Studio 2013 (версия сообщества) с установленной Qt addn, библиотеками Qt5 (32 бит), и я пытаюсь создать исполняемый файл, который не зависит от всех конфигураций разработки (он может использовать статические или общие библиотеки, я на данный момент это неважно).
ОС: Windows 7, x64.
Для этого я изменил параметр Solution Confguration
visual studio от Debug
до Release
и добавил все необходимые библиотеки в Configuration Properties -> Linker -> Input -> Additional Dependencies
. Приложение теперь запускается, только если я запускаю его из визуальной среды IDE. Если я попытаюсь запустить его из сгенерированной .exe
, я получил ошибку The application was unable to start correctly (0xc000007b)
.
Я искал и обнаружил, что этот код ошибки указывает на одну из следующих проблем:
- 32-разрядное приложение пытается загрузить 64-разрядную DLL (не в моем случае, я думаю, Qt DLL 32-битные (я установил с помощью этого .exe:
qt-opensource-windows-x86-msvc2013-5.5.0
.), и я использую некоторые другие .DLL, которые также 32bit). - Есть некоторые недостающие DLL. (Я скопировал все необходимые Qt DLL в той же папке с окончательным исполняемым файлом).
Для проверки того, какие зависимости требуется моему приложению, я открыл файл .exe
с помощью приложения Dependency Walker, вот что он мне показывает:
в этом списке также были Qt5Multimedia.dll
и Qt5SerialPort.dll
, я избавился от ошибок, скопировав .DLLs
в ту же папку с .exe
.
Есть идеи, как это решить?