Какие причины могут помешать запуску программы, написанной на Qt?

Я разработал программу на C++ с использованием Qt в Qt Creator и собрал её в режиме Release с помощью MinGW 64-bit. После этого я использовал windeployqt.exe для добавления необходимых DLL-файлов в бинарник. Однако при запуске собранного приложения появляются три ошибки, указывающие на то, что "Точка входа в процедуру ... не найдена в библиотеке DLL ...". <br/> Я использую Qt версии 6.4.0. <br/> Указанная ошибка возникает даже при попытке запустить пустое консольное приложение, собранное тем же способом. <br/> <br/> Пожалуйста, подскажите, как можно решить эту проблему.
  • 27 сентября 2024 г. 15:33
Ответы на вопрос 2
Ошибка "Точка входа в процедуру ... не найдена в библиотеке DLL ..." может возникать по нескольким причинам. Вот некоторые из них и советы по их устранению:

1. **Несоответствие версий библиотек**:
   - Убедитесь, что все библиотеки, которые вы добавили с помощью `windeployqt`, соответствуют версии Qt, с которой вы разрабатывали приложение. Если вы, например, использовали Qt версии 6.4.0, необходимо, чтобы вы также использовали библиотеки из этой же версии.

2. **Отсутствие необходимых зависимостей**:
   - Возможно, некоторые зависимости не были включены в сборку. Проверьте, подключены ли все необходимые DLL-файлы, особенно те, которые могут быть неявно необходимы (например, DLL для работы с определенной функциональностью Qt: графикой, сетевыми запросами и др.).

3. **32-бит и 64-бит**:
   - Убедитесь, что ваш проект и все его зависимости 64-битные, если вы используете MinGW 64-bit. Если вы, случайно, использовали 32-битные библиотеки, это может вызвать подобные ошибки.

4. **Кеширование DLL**:
   - Возможно, у вас в системе находятся устаревшие версии необходимых DLL-файлов, которые загружаются вместо тех, которые вы добавили. Попробуйте перезапустить компьютер, чтобы сбросить кеширование DLL.

5. **Проблемы с путями**:
   - Убедитесь, что все пути к библиотекам корректны. Иногда системы могут не находить нужные библиотеки, если они расположены в нестандартных местах.

6. **Отладка**:
   - Запустите приложение через отладчик (например, GDB) или используйте инструмент Dependency Walker, чтобы увидеть, какие библиотека или зависимости не могут быть загружены. Это может дать вам больше информации о том, что именно вызывает проблему.

7. **Сторонние библиотеки**:
   - Если вы используете сторонние библиотеки, убедитесь, что они совместимы с вашей версией Qt и MinGW.

8. **Обновление Qt**:
   - Если проблема продолжает сохраняться, попробуйте обновить Qt до последней версии, если это приемлемо для вашего проекта. В последних версиях могут быть исправлены известные проблемы.

Если ни одно из этих решений не помогает, пожалуйста, предоставьте дополнительную информацию о конкретных ошибках, которые вы видите, и о том, какие библиотеки вы использовали. Это поможет более точно диагностировать проблему.
Похоже на некорректные DLL. И, по-моему, виноваты DLL Си++ — обычно это творится, если используют сторонний компилятор (свежий Си++ дорогого стоит), а библиотеки из Qt.
Похожие вопросы