Qt как сделать исполняемый файл
Обновлено: 21.11.2024
объяснить: соответствующие операции в этом документе основаны на операционной системе Windows10 + платформе приложений Qt (5.14.1) + интегрированной среде разработки Qt Creator (4.11.1) + среде компиляции MinGW, запросе версии Qt и IDE для (Строка меню Qt Creator → справка → О Qt Creator).
Прежде чем упаковать издателя, нам может понадобиться сначала предоставить исполняемой программе (файл .exe) красивый значок. Во-первых, мы знаем, что можно передать свойство «Qt Creator IDE→ Design → attribute →windowIcon», чтобы напрямую установить значок основной формы после запуска программного обеспечения, или напрямую через setWindowIcon(QIcon(" Ваша картинка путь")) Функции тоже можно задавать. Но чтобы установить сгенерированный значок файла .exe, необходимо выполнить следующие шаги.
- Выберите тот, который подходит для вашей программы. Значок .ico , рекомендуемый веб-сайт: библиотека векторных значков Alibaba (бесплатно), загрузите его и поместите в папку вашего проекта.
- создайте новый текстовый файл myApp.txt, введите следующую строку кода: ол>
- Затем измените суффикс myApp.txt → myApp.rc ( Вы также можете напрямую добавить файлы ресурсов IDE в «Добавить новый→Qt→Файл ресурсов Qt»), Поместите файл в папку проекта и добавьте его в проект (Добавить существующий файл в проект) ).
- Дважды щелкните файл проекта и добавьте в конец следующую строку кода: ол>
- И последнее. Просто перестройте и запустите программу.
- Введите команду: windeployqt ***.exe, среди ***.exe Ваше имя файла .exe .windeployqt Инструмент поместит exe Скопируйте файлы библиотеки, от которых зависит программа, в эту папку.
- В нормальных условиях в настоящее время папку Green Portable можно скопировать на другие машины и запустить в обычном режиме. Однако также возможно, что приглашение на других машинах по-прежнему отсутствует xxx.dll. , это нужно вручную dll скопировать файлы в эту папку . ол>р>
- mingwm10.dll
- libgcc_s_dw2-1.dll
- QtCore4.dll
- QtGui4.dll
- Выберите нужную папку программного обеспечения в библиотеке программного обеспечения.
- Выберите задачу «Создать пакет приложения»> «EXE-пакет» и следуйте указаниям мастера.
- Введите имя пакета.
- Выберите исполняемый файл, например файл setup.exe.
- Укажите параметры выполнения в параметрах командной строки.
- Тип публикации. В качестве типа публикации выберите исполняемый файл Windows (*.exe).
- Название проекта. Введите имя исполняемого файла без расширения (.exe/.
- Местоположение. Введите полный путь к папке, в которой нужно сохранить файл, или нажмите кнопку "Обзор", чтобы найти папку.
- Значок.
- Опубликовать основной проект. При развертывании основного проекта просто используйте значение по умолчанию.
- задайте виртуальный каталог. Мы все знаем, что веб-приложение по умолчанию будет развернуто на site\wwwroot, поэтому давайте создадим в нем подкаталог для развертывания нового проекта.
- развернуть другой проект на том же веб-сайте.
- Запустите Visual Studio и откройте существующий проект веб-приложения.
- В обозревателе решений щелкните правой кнопкой мыши свое веб-приложение и выберите "Опубликовать веб-приложение".
- В окне мастера публикации выберите «Профиль» и выберите «Импорт» в меню «Выбор объекта публикации».
- Выберите нужную папку программного обеспечения в библиотеке программного обеспечения.
- Выберите задачу «Создать пакет приложения»> «EXE-пакет» и следуйте указаниям мастера.
- Введите имя пакета.
- Выберите исполняемый файл, например файл setup.exe.
- Укажите параметры выполнения в параметрах командной строки.
- Создать код Qt для выпуска.
- Создайте новую папку для хранения всех файлов, связанных с развертыванием, используя этот метод.
- Скопируйте двоичный файл выпуска в новую папку.
- Найти путь к windeployqt
- Добавить в переменную PATH среды пользователя.
- Скомпилируйте двоичный файл в режиме выпуска.
- Откройте консоль разработчика Qt и введите windeployqt "C:\folder\of\your\executable" (для linuxdeployqt будет очень похоже)
- Все библиотеки, необходимые для запуска приложения на другом компьютере, копируются в папку вашего приложения.
- создайте структуру папок на компьютере разработчика, которая будет соответствовать структуре каталогов целевого USB-накопителя, например, «\app», а для ваших DLL — «\app\lib».
- на компьютере разработчика из соответствующей папки 'redist' скопируйте файлы Microsoft.VC80.CRT и Microsoft.VC80.MFC в каталоги '\app' и '\app\lib' на компьютере разработчика.
- xcopy папку \app на целевой USB-накопитель.
- QTCORE4.DLL — среда выполнения QtCore
- QTGUI4.DLL — среда выполнения QtGui
- MSVCRT.DLL — среда выполнения C
- MSVCP60.DLL — среда выполнения C++ (только если установлена STL)
- MSVCR71.DLL — среда выполнения C
- MSVCP71.DLL — среда выполнения C++ (только если установлена STL)
- MSVCR80.DLL — среда выполнения C
- MSVCP80.DLL — среда выполнения C++ (только если установлена STL)
- MINGWM10.DLL — среда выполнения MinGW
- LIBGCC_S_DW2-1.DLL
- Использование QApplication::addLibraryPath() или QApplication::setLibraryPaths(). Этот подход рекомендуется, если у вас есть только один исполняемый файл, который будет использовать подключаемый модуль.
- Использование сторонней утилиты установки для изменения жестко заданных путей в библиотеке QtCore.
- Как изменить размер изображения в InDesign
- Что делать, если iPad зависает
- Urlmon dll что это такое
- Canon imagerunner 1133, как сканировать на компьютер
- Дисплей холодильника Gorenje не работает
В зеленой переносной версии есть папка. Эту папку можно скопировать в любую папку Windows. На системном компьютере двойным щелчком. Файл .exe запускается напрямую. Установка Qt Environmental Science не требуется. Предположим, вы создали новую папку «GreenSoftwarePack». Шаги следующие:
Настройте режим работы компиляции проекта на Release, как показано на рисунке ниже.
После сборки и запуска программы, соответствующая папка сборки на основе версии версии.
Введите. В этой папке отпустите папку, найдите файл «имя проекта .exe», будет .exe. Скопируйте файл в папку Green Portable «GreenSoftwarePack». здесь, если вы устанавливаете Qt, пути различных библиотек добавляются в переменную среды, дважды щелкните файл. На вашем локальном компьютере исполняемый файл может работать успешно, но копирование файла непосредственно на чужой компьютер не может быть запущено, из-за отсутствия соответствующих файлов динамической библиотеки, копирование различных необходимых файлов библиотеки вручную также является решением, но нет такая вещь ( •̀ ω •́ )y .
Итак, Qt я взял с собой копию .exe Инструменты для программно-зависимых библиотек —— windeployqt . Нажмите Win+Q Key search qt , Вызовите свой компилятор , Я использую MinGW , Если вы устанавливаете Qt Когда приложение framework bin Каталог добавляется в переменную окружения , Вы также можете выполнять следующие операции прямо через консоль .
Введите следующую команду: перейдите к пути к папке, в которую вы хотите упаковать (то есть в папку с зеленым мешком, только что созданный GreenSoftwarePack).
Другая ситуация: при использовании SQLite. Когда дело доходит до баз данных, даже если вы выполняете описанные выше шаги для всех связанных с базой данных .dll, скопированных в папку, однако все функции, связанные с базой данных, по-прежнему недоступны. Теперь сначала проверьте, был ли установлен файл вашей базы данных, то есть успешно ли вы создали xxx.db, если файл базы данных был успешно создан, это может быть проблема в исходном коде, отлаживайте шаг за шагом, если ни один из файлов базы данных не создан успешно, пожалуйста, обратитесь к моему блогу :( метод в блоге может также применяться к другим xxx.dll Ситуация, которая не существует )
Qt .exe Упаковка и публикация файлов ,SQLite База данных недоступна ? Скопированная dll Тоже не хорошо. ?
Зеленая портативная версия предоставляет исполняемый файл .exe в формате. Запустите exe. Вы можете установить программное обеспечение в соответствии с мастером. Зеленая портативная версия выше была успешно реализована, Дважды щелкните по ней exe Файл может работать нормально, И проблем нет. Учебник по упаковке показан ниже:
Во-первых, нам нужно небольшое программное обеспечение: Inno Setup. Программное обеспечение Windows. Программа предоставляет бесплатный дизайн программы установки. Она также поддерживает изменение этапов проектирования программы установки в виде сценария. Inno Setup В 1997 г. Впервые запущен в 1997 г. Сегодня он сравним со многими коммерческими установщиками с точки зрения набора функций и стабильность , Даже больше , чем многие . Поддержка с 2006 г. Каждый год, начиная с выпуска Windows, включая последнюю версию Windows 11.
Официальный адрес загрузки: Inno Setup Официальный адрес загрузки. После загрузки вы можете установить его шаг за шагом.
После успешной установки , Запустите программное обеспечение , Закройте экран приветствия , Нажмите «Файл>Создать…», а затем нажмите 【Далее】.
Следуйте подсказкам, чтобы ввести имя приложения, выпуск, издатель, веб-сайт, а затем нажмите 【Далее】. Эта информация будет сгенерирована позже в сценарии. Вы можете изменить ее позже с помощью сценария.
Укажите выходной путь к файлу пакета и имя выходной папки, а затем нажмите 【Далее】.
В настоящее время используется зеленая портативная версия выше. Сначала добавьте исполняемый файл приложения, которое вы хотите упаковать. Вот и все. .exe, затем добавьте все зависимые файлы динамической библиотеки, файл ресурсов, файл конфигурации, как показано в красно-зеленом поле индикатора на рисунке ниже. (Вы можете поместить все необходимые файлы в одну папку, а затем нажмите Добавить папку), нажмите 【Далее】.
Нажмите 【Далее】.
Создайте параметры, связанные с ярлыками, выберите нужные, нажмите 【Далее】.
выбор «Лицензионные документы», «Предустановочные файлы» (как показано слева на рисунке ниже «Документы Readme» и т. д., после запуска программы установки появится всплывающее окно), «Показать информацию после установки» и т. д. , Нажмите 【Далее】.
Выбранный режим установки — установка. Для всех пользователей на компьютере. Или просто установите конфигурацию для текущего пользователя. Нажмите 【Далее】.
Выберите язык установки, нажмите 【Далее】.
выберите «Выходная папка компилятора», «Имя базового выходного файла компилятора», «Настройка файла значка» И «Установочный пароль», нажмите 【Далее】.
Нажмите «Готово», «Начать генерацию сценария». Соответствующая информация в сценарии генерируется в соответствии с указанными выше настройками.
После создания сценария вам будет предложено скомпилировать сценарий немедленно. Его можно скомпилировать напрямую. Вы также можете просмотреть и изменить некоторый контент. Не беспокойтесь о непонимании. посмотрите на модификацию,
Если версия программного обеспечения обновлена , Переупакован исполняемый файл приложения , Вы не можете повторить описанный выше процесс , Напрямую перенести предыдущую замену exe-файла , Затем запустите. С ранее сгенерированным файлом сценария, новой версией файлов установочного пакета exe, конечно, сценарий может быть немного изменен, например, версия программного обеспечения и другая информация.
Конечным результатом компиляции сценария является exe. Файлы установочного пакета. Дважды щелкните exe. Установите файл, чтобы установить программное обеспечение. Установочный файл можно установить в любое время, когда работает Windows Machine.
Я работал над компилятором Qt Creator, чтобы сделать простой текстовый редактор. Я сделал это, но теперь хочу сделать файл .exe этого проекта, но я не знаю, как сделать файл .exe в компиляторе Qt Creator. Кто-нибудь может помочь?
4 ответа 4
Существует инструмент, автоматически добавляющий библиотеки .dll в Windows.
В командной строке перейдите в каталог qt bin. Это должно выглядеть примерно так: . \Qt\5.9.1\msvc2017_64\bin\ (я использую Visual Studio).
Запустите windeployqt.exe в командной строке, указав расположение вашего проекта в качестве аргумента, например:
Теперь my_project.exe будет иметь библиотеки .dll в том же каталоге и будет выполняться.
Исполняемый файл создается компилятором при создании приложения. Чтобы узнать, где хранится исполняемый файл, загляните в
Проекты (CTRL+5) -> Настройки сборки -> Общие -> Каталог сборки
Здесь создатель Qt поместит сгенерированный .exe, если у вас включена теневая сборка. Если теневая сборка отключена, исполняемый файл будет храниться внутри самой папки проекта.
От: Как создать исполняемый файл для приложения Qt? В основном вам нужно искать подпапку MinGW глубоко в дереве Qt, где находятся утилиты 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):
Я только что создал, протестировал и развернул фиктивный проект таким образом.
У меня была та же проблема, поэтому я использовал предложенный выше ответ: "Существует инструмент, который автоматически добавляет библиотеки .dll в Windows.
В командной строке перейдите в каталог qt bin. Это должно выглядеть примерно так: . \Qt\5.9.1\msvc2017_64\bin\ (я использую Visual Studio).
Запустите windeployqt.exe в командной строке, указав расположение вашего проекта в качестве аргумента, например:
Теперь my_project.exe будет иметь файлы .dll в том же каталоге и будет выполняться. " но есть кое-что, что я сделал, так что это может помочь:
в файле отладки вашего проекта уже есть исполняемая версия вашего приложения, если вы не можете ее найти, попробуйте ввести свойства в Qt Creator и отследить файл. пока вы находитесь в свойствах, вы также можете увидеть, использует ли ваше приложение msvc2017_64, как в предыдущем ответе, или другие компиляторы.
когда вы попытаетесь открыть исполняемый файл, ему потребуются некоторые DLL-файлы, которые вы можете найти по этому пути.\Qt\5.9.1\msvc2017_64\bin скопируйте и вставьте их в папку с исполняемым файлом р>
Перейдите в каталог, где установлен Qt, и введите точное имя в строке поиска (вверху справа в Windows 7), и dll должна появиться в результатах поиска. Щелкните правой кнопкой мыши и выберите расположение открытого файла. Скопируйте файл, в котором находится ваш exe. Дважды щелкните исполняемый файл еще раз.
Что создает исполняемый файл?
Если вы хотите создать свои собственные исполняемые файлы в Windows, вы можете это сделать, но это не так просто, как переименовать файл и добавить .exe в его конец. Вам нужно будет закодировать программное обеспечение, которое вы хотите запустить, на выбранном вами языке программирования, а затем скомпилировать его в виде файла, который можно будет выполнить.
Как создать простой исполняемый файл?
Как создать EXE-пакет:
Как опубликовать EXE-файл?
Настройте следующие параметры:
Как опубликовать несколько проектов в Visual Studio 2019?
Выполните следующие действия:
Как опубликовать решение Visual Studio?
Что означает FT в тексте?
FT означает «F*** That» или «For Trade». Итак, теперь вы знаете, что FT означает «F*** That» или «For Trade» — не благодарите нас. ЮВ! Что означает ФТ? FT — это аббревиатура, аббревиатура или сленговое слово, объяснение которого приведено выше, где дается определение FT.
Что означает TSF в медицинских терминах?
Медицинская аббревиатура TSF
4 | TSF | Злоупотребление психоактивными веществами, психиатрия, зависимость |
---|---|---|
2 | TSF | |
2 | TSF | Здравоохранение, Здоровье, Диагностика | < /tr>
2 | TSF | Питание, наука о питании |
1 | TSF | Лечение, Алкоголь |
Что такое полная форма TSF?
Акроним | Определение | |||
---|---|---|---|---|
TSF | Шаблон формата потока< /td> | |||
TSF | Чайная ложка (измерение) | |||
TSF | Общая площадь (измерение) | |||
TSF | Télégraphie Sans Fil (французский: бывший термин для радио) |
КРАТКИЕ ФАКТЫ | |
---|---|
Дата рождения | 30 августа 1990 г. |
Место рождения | Хьюстон, США |
Возраст | 30 лет, 9 месяцев, 28 дней |
Гороскоп | Дева |
Откуда соус Санчо?
Сколько лет Сосаманну?
Является ли Сосаман ФБО?
Сосаманн: Это мой лейбл. ТСФ. Я генеральный директор, я и мой близнец.
С кем подписан Сосаманн?
Тейлор Банд Энтертейнмент
Сколько стоит чистая стоимость соуса Walka?
По состоянию на 2021 год собственный капитал Sauce Walka оценивается примерно в 3 млн долларов.
Сколько стоит 21 Savage?
Стоимость 21 Savage: 21 Savage – американский хип-хоп исполнитель, состояние которого составляет 12 млн долларов США.
Оглавление
Как мне создать исполняемый файл в Qt?
Перейдите в каталог, где установлен Qt, и введите точное имя в строке поиска (вверху справа в Windows 7), и dll должна появиться в результатах поиска. Щелкните правой кнопкой мыши и выберите расположение открытого файла.Скопируйте файл, в котором находится ваш exe. Дважды щелкните исполняемый файл еще раз.
Как заставить мой exe работать?
Как создать EXE-пакет:
Как развернуть программу QT в Windows?
Разверните кроссплатформенное приложение Qt с помощью windeployqt
Как вы выпускаете Qt?
<р>1. Разверните приложение с помощью windeployqt/linuxdeployqtГде создается файл .exe в Qt Creator?
Исполняемый файл создается компилятором при создании приложения. Чтобы узнать, где хранится исполняемый файл, загляните сюда. Здесь создатель Qt поместит сгенерированный .exe, если у вас включена теневая сборка.
Как создать приложение Qt в Visual Studio?
Загрузите исходные коды Qt, соберите и установите их с помощью nmake (используя командную строку Visual Studio из меню "Пуск" -> "Приложение" -> "Visual Studio 2008").
Где мне скомпилировать Qt в режиме выпуска?
Допустим, вы установили Qt под c:qtsdk. Откройте свой проект и скомпилируйте его в режиме выпуска. Перейдите в этот каталог: C:QtSDKDesktopQt4.7.4mingwbin — он содержит все общие библиотеки.
Хорошо, я знаю, что сказал, что хочу сделать учебник о том, как автоматически позиционировать и автоматически изменять размер виджетов, когда окно развернуто. Но, как обычно, возникает что-то еще более важное — распространение исполняемого файла среди друзей или запуск исполняемого файла вне Qt.
Я только что научился создавать приложения для Windows с помощью Qt. Я сделал небольшой инструмент для собственного использования. А потом я узнал, что мой друг тоже любит его использовать. Но я не могу просто скопировать EXE и передать своему другу. Он просто не запустится! Почему?
У вас был этот вопрос? Я тоже!
Я привык иметь автономный EXE-файл при разработке приложения для Windows, так как раньше использовал Lazarus и Delphi. В XCode у нас также есть отдельный исполняемый файл. (ипа). Поэтому, когда я столкнулся со странным EXE-файлом, который не мог выполниться, моя реакция была «ЧТО ЭТО ЗА ДЕРЬМО!», лол! Как оказалось, исполняемый файл, написанный на Qt, требует для своей работы дополнительных файлов. Такие файлы, как .dll (динамические библиотеки Windows), любые используемые вами файлы .ini и другие связанные файлы. И, кроме того, приложение Qt имеет 2 области, на которых оно основано (которые вы можете выбрать, но, вероятно, вы не заметили) - сборка отладки и сборка выпуска. Эти 2 сферы типичны. В XCode это тоже есть. Разница в том, что с Qt и сборка Debug, и сборка Release НЕ являются исполняемыми сами по себе, для запуска требуется Qt. Глупо, верно? я знаю..
Итак, как вы собираетесь распространять свое приложение среди друзей или на других компьютерах? Только для этой цели давайте сделаем немое приложение. Это будет пустое оконное приложение, которое ничего не делает. А почему бы и нет :D. Если вы не знаете, как создать пустое приложение, обратитесь к предыдущему руководству.
1. ЗАСТАВКА EXE ЗАПУСКАЕТСЯ САМОСТОЯТЕЛЬНО
После того как вы создали пустое приложение (типа виджета) и сохранили его в нужном месте, вы готовы продолжить. Во-первых, конечно, вы должны выбрать сборку Release.
Затем попробуйте запустить его из Qt. Приложение должно запуститься и показать пустое окно. Теперь DumbApp.exe появится в папке Release. Но. дважды щелкните по нему, и ничего не происходит. Это означает, что приложению для запуска требуется Qt, и оно будет работать только из Qt. Разве это не глупо? ЛОЛ!
В любом случае, как только вы подтвердите, что ваше приложение не содержит ошибок и может работать из Qt, вы можете перейти к следующему шагу — развертыванию вашего приложения qt с помощью инструмента windeployqt.exe. Откройте командную строку Dos, перейдите в папку с релизом и введите:
C:\Qt — это место, где я устанавливаю свой Qt. Поэтому вам может понадобиться изменить это на вашу собственную папку Qt. Нажмите Enter, и программа обработает ваш exe-файл и скопирует связанные файлы в ту же папку.В итоге вы получите примерно следующее:
Как вы можете видеть, сейчас создается и добавляется в папку релиза множество dll и папок. Однако! В windeployqt.exe отсутствуют несколько файлов, которые необходимо вручную скопировать из C:\Qt\5.9.1\mingw53_32\bin в папку выпуска. Опять же, это предполагает, что вы установили свой Qt в C:\Qt и у вас есть компилятор mingw (который используется по умолчанию в большинстве установок Qt). Это 3 файла:
- libgcc_s_dw2-1.dll
- libstdc++-6.dll
- libwinpthread-1.dll
На этом этапе ваше приложение должно быть способно выполняться отдельно от Qt. Вы можете попробовать закрыть Qt Creator и дважды щелкнуть DumbApp.exe в папке выпуска. Вы должны увидеть, как он работает, показывая пустое окно без Qt Creator! Если нет, то чего-то еще не хватает. Вам нужно поспрашивать (особенно если вы не используете Qt5.9), для каких дополнительных файлов вам может потребоваться скопировать вручную.
Теперь вы можете просто заархивировать всю папку релиза и отправить своим друзьям или, что более стильно, скомпилировать ваши файлы в файл Installer.exe!
2. КОМПИЛЯЦИЯ ФАЙЛОВ ПРИЛОЖЕНИЯ В INSTALLER.EXE
Первое, что нужно сделать, это установить Inno Setup. Поверьте мне, когда я говорю, что Inno Setup — ЭТО ПУТЬ. Раньше я колебался, потому что не хотел устанавливать другую программу для распространения приложения. Но Inno Setup — это аккуратный маленький инструмент, к тому же он абсолютно бесплатен даже для коммерческого использования!
После установки запустите компилятор Inno Setup Compiler и, если появится диалоговое окно приветствия, выберите «Создать новый файл сценария» с помощью мастера сценариев. Если нет, то перейдите в меню и выберите File->New. Мастер запустится. Нажмите «Далее» и введите необходимые данные, такие как имя приложения, номер версии и т. д.
Вы должны указать выходную папку, чтобы после того, как InnoSetup скомпилирует ваш сценарий, созданный мастером, результирующий файл Installer.exe был там. Также измените имя выходного базового файла компилятора на ДРУГОЕ, чем setup. Возможно, установщик.
После еще нескольких диалогов вы можете нажать «Готово», и Inno Setup отобразит созданный вами скрипт с приглашением:
Вы можете видеть, что данные, введенные вами в мастере, теперь находятся внутри скрипта. Потратьте время, чтобы прочитать сценарий, чтобы почувствовать его. Щелкните Нет в ответ на приглашение. Вы можете скомпилировать его сейчас, но ваше приложение все равно не сможет работать. Я скажу вам, почему.
Это потому, что вам нужно немного изменить сценарий. Во-первых, в созданном вами сценарии в разделе [Файлы] измените следующее:
Таким образом, он будет включать все файлы в папке выпуска и повторно использовать все папки и подпапки в ней. Обычно приложение, вероятно, будет иметь некоторые библиотеки DLL, файлы значков, руководства пользователя, файлы .ini, файлы базы данных и т. д., поэтому это изменение сценария будет обрабатывать все это.
В этой документации описано, как определить, какие файлы следует включить в дистрибутив, и как убедиться, что приложение найдет их во время выполнения. Мы продемонстрируем процедуры развертывания приложения Plug & Paint, которое находится в каталоге примеров Qt.
Статическая ссылка
Если вы хотите упростить задачу, развернув всего несколько файлов, т. е. автономный исполняемый файл со связанными библиотеками DLL, специфичными для компилятора, то вам необходимо собрать все статически.
Статическая сборка Qt
Прежде чем мы сможем построить наше приложение, мы должны убедиться, что Qt собран статически. Для этого перейдите в командную строку и введите следующее:
Не забудьте указать любые другие необходимые вам параметры, такие как драйверы базы данных, в качестве аргументов для configure. После завершения configure введите следующее:
Это приведет к статической сборке Qt. Обратите внимание, что в отличие от динамической сборки, статическая сборка Qt приведет к библиотекам без номеров версий; например QtCore4.lib будет QtCore.lib. Кроме того, мы использовали nmake во всех примерах, но если вы используете MinGW, вместо этого вы должны использовать mingw32-make.
Примечание. Если позже вам понадобится перенастроить и пересобрать Qt из того же места, убедитесь, что все следы предыдущей конфигурации удалены, войдя в каталог сборки и набрав nmake distclean перед запуском настроить еще раз.
Связывание приложения со статической версией Qt
После завершения сборки Qt мы можем собрать приложение Plug & Paint. Сначала мы должны перейти в каталог, содержащий приложение:
Затем мы должны запустить qmake, чтобы создать новый make-файл для приложения, и выполнить чистую сборку, чтобы создать статически связанный исполняемый файл:
Возможно, вы захотите создать ссылку на библиотеки выпуска, и вы можете указать это при вызове qmake. Теперь, при условии, что все скомпилировано и скомпилировано без ошибок, у нас должен быть файл plugandpaint.exe, готовый к развертыванию. Один из простых способов проверить, действительно ли приложение можно запускать автономно, — это скопировать его на компьютер, на котором не установлен Qt или какие-либо приложения Qt, и запустить его на этом компьютере.
Помните, что если ваше приложение зависит от конкретных библиотек компилятора, они все равно должны распространяться вместе с вашим приложением. Вы можете проверить, с какими библиотеками связано ваше приложение, с помощью инструмента depends. Дополнительные сведения см. в разделе «Зависимости приложений».
Пример Plug & Paint состоит из нескольких компонентов: самого приложения (Plug & Paint) и подключаемых модулей Basic Tools и Extra Filters. Поскольку мы не можем развертывать плагины с использованием статического связывания, подготовленное нами приложение является неполным. Он запустится, но функциональность будет отключена из-за отсутствующих плагинов. Для развертывания приложений на основе плагинов мы должны использовать подход с общей библиотекой.
Общие библиотеки
У нас есть две проблемы при развертывании приложения Plug & Paint с использованием подхода с общими библиотеками: среда выполнения Qt должна быть правильно перераспределена вместе с исполняемым файлом приложения, а подключаемые модули должны быть установлены в правильном месте в целевой системе, чтобы чтобы приложение могло их найти.
Создание Qt как общей библиотеки
Мы предполагаем, что вы уже установили Qt как разделяемую библиотеку, которая используется по умолчанию при установке Qt, в каталог C:\path\to\Qt. Дополнительные сведения о сборке Qt см. в документации по установке.
Связывание приложения с Qt как общей библиотеки
Убедившись, что Qt построен как общая библиотека, мы можем создать приложение Plug & Paint. Во-первых, мы должны перейти в каталог, содержащий приложение:
Теперь запустите qmake, чтобы создать новый make-файл для приложения, и выполните чистую сборку, чтобы создать динамически связанный исполняемый файл:
При этом создается основное приложение, следующие подключаемые модули:
Если все скомпилировано и слинковано без ошибок, мы получим исполняемый файл plugandpaint.exe, а также pnp_basictools.dll и pnp_extrafilters.dll файлы плагинов.
Создание пакета приложения
Чтобы развернуть приложение, мы должны убедиться, что мы скопировали соответствующую Qt DLL (соответствующую модулям Qt, используемым в приложении), а также исполняемый файл в тот же каталог в подкаталоге release .
Помните, что если ваше приложение зависит от конкретных библиотек компилятора, они должны распространяться вместе с вашим приложением. Вы можете проверить, с какими библиотеками связано ваше приложение, с помощью инструмента depends. Дополнительные сведения см. в разделе «Зависимости приложений».
Мы вскоре рассмотрим подключаемые модули, но сначала проверим, будет ли приложение работать в развернутой среде: либо скопируйте исполняемый файл и библиотеки Qt DLL на компьютер, на котором не установлен Qt или какие-либо приложения Qt, или, если вы хотите протестировать на машине сборки, убедитесь, что на машине нет Qt в ее среде.
Если приложение запускается без проблем, значит, мы успешно создали динамически подключаемую версию приложения Plug & Paint. Но функциональность приложения по-прежнему будет отсутствовать, поскольку мы еще не развернули соответствующие подключаемые модули.
Плагины работают иначе, чем обычные библиотеки DLL, поэтому мы не можем просто скопировать их в тот же каталог, что и исполняемый файл нашего приложения, как мы делали с библиотеками Qt DLL. При поиске подключаемых модулей приложение выполняет поиск в подкаталоге plugins внутри каталога исполняемого файла приложения.
Поэтому, чтобы сделать плагины доступными для нашего приложения, мы должны создать подкаталог plugins и скопировать соответствующие библиотеки DLL:
Архив, содержащий все DLL-библиотеки Qt и подключаемые модули для конкретных приложений, необходимые для запуска приложения Plug & Paint, должен включать следующие файлы:
Компонент | Имя файла | |||
---|---|---|---|---|
Исполняемый файл | plugandpaint.exe | |||
Плагин Basic Tools | plugins\pnp_basictools.dll | |||
Подключаемый модуль ExtraFilters | plugins\pnp_extrafilters.dll | |||
Модуль Qt Core | qtcore4.dll | |||
Модуль Qt GUI | qtgui4.dll |
VC++ 6.0 | VC++ 7.1 (2003) | VC++ 8.0 (2005) | VC++ 9.0 (2008 г.) | |
---|---|---|---|---|
Среда выполнения C | msvcrt.dll | msvcr71.dll | msvcr80.dll | msvcr90.dll tt> |
Среда выполнения C++ | msvcp60.dll | msvcp71.dll | msvcp80.dll | msvcp90.dll | тр> таблица>