Подтвердить что ты не робот

Как создать исполняемый файл для приложения Qt?

Я искал в Интернете какую-то полезную и ясную информацию об этом, это раздражает, что такая простая вещь так трудно сделать.

Мне нужно создать исполняемый файл для моего проекта Qt, чтобы запустить его на других компьютерах. Мой проект хорошо работает в Qt Creator, но когда я пытаюсь запустить исполняемый файл, созданный в папке выпуска, я получаю ошибки в отношении некоторой DLL, и, хотя я поместил их все в один и тот же каталог моего .exe, я получил некоторые ошибки о входных точках в процедурах внутри dll (QtCore4.dll).

Решение похоже на статическое связывание, я нашел много информации об этом, но никто из них не помог мне. Вот что я пробовал до сих пор:

  • Использование исполняемого файла, созданного в папке выпуска, как я сказал выше.
  • Статическое связывание, следуя этому руководству (и многим другим, все почти то же самое): http://doc.qt.io/qt-4.8/deployment-windows.html, но я получаю следующую ошибку во время "configure -static": NMAKE: фатальная ошибка U1077: "c:\Arquivos de programas\Microsoft Visual Studio 9. 0\VC\BIN\cl.EXE "': код возврата' 0x2 ' Стоп. Не удалось создать qmake, код возврата 2

Для этого я не смог найти какое-либо решение, поэтому я просто пытаюсь создать исполняемый файл для моего проекта Qt, надеюсь, вы, ребята, можете дать мне немного света здесь.

4b9b3361

Ответ 1

В основном вам нужно искать подпапку mingw в глубину qt tree, где утилиты qt находятся и копируют необходимые DLL.

Ниже приведены шаги, которые я следую на основе QT 4.7.4, для упаковки приложения с использованием правильных разделяемых библиотек.

  • Предположим, вы установили QT в c:\qtsdk
  • Откройте проект и скомпилируйте его в режиме выпуска.
  • Перейдите в этот каталог: C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin - он содержит все разделяемые библиотеки. Отладочные библиотеки заканчиваются на "d" - frex, QtCore.dll - это версия выпуска, а QtCoreD.dll - отладочная версия.
  • Скопируйте как минимум эти файлы в каталог выпуска (где находится ваш .exe)

    • MINGWM10.DLL
    • libgcc_s_dw2-1.dll
    • QtCore4.dll
    • qtgui4.dll

    Я только что построил, протестировал и развернул фиктивный проект таким образом.

Ответ 2

Вот что я сделал, и я заставил его работать через некоторое время, после того, как вы убедитесь, что ваша программа построена внутри Qtcreator, перейдите в каталог, содержащий ваш exe, и дважды щелкните по нему. (Я использую окна и не знаю, одинаково ли это на других платформах). В окне должно появиться всплывающее сообщение о том, какой DLL отсутствует. Перейти в каталог, в котором установлена ​​Qt, и ввести точное имя в строке поиска (вверху справа в Windows 7) и DLL должна появиться в результатах поиска. Щелкните правой кнопкой мыши и выберите открытое местоположение файла. Скопируйте файл, в котором находится ваш exe. Двойной щелчок на EXE снова. Если другой .dll отсутствует, повторите одно и то же, пока не будет отсутствовать. конец вашей программы должен выполняться. Надеюсь, это поможет.

Ответ 3

Итак, вы загрузили Qt SDK и хотите связать библиотеки Qt статически в своем приложении, правильно?

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

Из моего опыта, что самый безопасный способ заставить все это работать:

Загрузите источники Qt, создайте и установите их с помощью nmake (с помощью Visual Studio Command Prompt из меню Start → Application → Visual Studio 2008). Просто помните, что размер статически связанного приложения зависит от размера *.lib, и они зависят от конфигурации предварительной сборки, например, вы можете свести к минимуму размер вашего приложения, отключив некоторые функции (это пример конфигурации для MacOSX, просто следите за тем, что подходит для Windows, и добавляйте правильный plaftorm - см. configure.exe --help для деталей):

./configure -arch x86 -platform macx-g++ --universal -cocoa -debug-and-release -opensource -static -fast -no-accessibility -no-sql-sqlite -no-qt3support -no-opengl -no-openvg -qt-zlib -no-gif -no-libmng -qt-libmng -no-libtiff -qt-libjpeg -no-3dnow -sse -no-sse2 -no-openssl -no-dbus -no-phonon -no-multimedia -no-audio-backend -webkit -no-script -no-scripttools -no-declarative -nomake demos -nomake examples -no-exceptions -no-accessibility -confirm-license

Установите, настройте и используйте надстройку Visual Studio для проекта Qt (здесь).

Удачи!:)