32-битное приложение Qt на win 7 x64 не будет запускаться, но нормально работает с Qt Creator?

Моя коробка разработки - Windows 7 x64. У меня есть 32-битная и 64-битная версии Qt 4.7.4, встроенные в мою коробку. Когда я настраиваю свое приложение для использования 32-битной версии Qt, оно прекрасно работает в Qt Creator (ctrl-R), но когда я пытаюсь дважды щелкнуть exe в проводнике Windows (или запустить из командной строки cmd), я получаю:

---------------------------
RenameTemplatePreviewFiles_Qt_win.exe - Ошибка приложения
---------------------------
Приложение не удалось правильно запустить (0xc000007b). 
Нажмите кнопку ОК, чтобы закрыть приложение. 
---------------------------
Хорошо   
---------------------------

Если я переключу свою конфигурацию на 64-битный Qt и соберу ее, я могу дважды щелкнуть по файлу exe, и он будет работать нормально.

Что мне нужно сделать, чтобы запустить exe, скомпилированный с 32-битным Qt?

2 ответа

Решение

Мое несколько образованное предположение состояло бы в том, что ваше приложение просто не может найти необходимые библиотеки DLL. Чтобы быть уверенным, вы можете открыть свой исполняемый файл в Dependency Walker, чтобы увидеть, находит ли он все необходимые библиотеки DLL. Если на первый взгляд ничего не происходит, используйте Dependency Walker для профилирования приложения. Это может выявить некоторые отсутствующие зависимости, загруженные во время выполнения.

Если это относится к вашим библиотекам Qt, убедитесь, что в переменной среды PATH есть соответствующая запись или что необходимые библиотеки DLL включены в каталог вашего EXE-файла (хотя последний может быть не лучшим выбором на компьютере разработчика).

Я столкнулся с той же проблемой. Сначала я скопировал необходимые DLL-файлы в папку релиза, где существует мой EXE-файл. Затем я скопировал дополнительный файл libstdC++-6.dll. Программа начала работать после этого.

Просто добавьте три отсутствующих dll-файла:

  • libwinpthread-1.dll
  • libstdC++ - 6.dll
  • libgcc_s_dw2-1.dll

в папку appl.exe . Для моей системы это будет в каталоге C:\Users\H\Documents\build-AQtest01v4-Desktop_Qt_5_11_0_MSVC2017_64bit-Debug, Копирование этих библиотек должно заставить ваше приложение работать. В моей системе эти dll можно найти в C:\Qt\Tools\mingw492_32\bin,

Я столкнулся с той же проблемой и хотел бы поделиться своим решением.

Когда я попытался развернуть 32-разрядную версию, запуск windeployqt.exe скопировал неправильные файлы для 32-разрядного исполняемого файла, поскольку PATH был установлен в 64-разрядную папку bin (D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin).

Когда я установил PATH в 32-битную папку (D:\Qt\Qt5.14.2\5.14.2\msvc2017\bin) и снова запустил windeployqt.exe, правильные файлы были скопированы для развертывания, и все заработало.

Гэри

Другие вопросы по тегам