Развертывание приложений Qt в MS Windows
Материал из Wiki.crossplatform.ru
Lit-uriy (Обсуждение | вклад) (→Указание путей в самой программе) |
Lit-uriy (Обсуждение | вклад) (→Общее описание) |
||
(12 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | + | Как указано в Асистенте, библиотека Qt не является системной. Т.е. она не распространяется штатно с ОС MS Windows. Следовательно при распространении программ, написаных на [[Qt]] для ОС MS Windows необходимо вместе с вашей программой распространять и библиотеки (dll'ки) самой Qt. | |
- | + | __TOC__ | |
- | == Указание путей в самой программе == | + | == Общее описание == |
- | В каталоге, куда устанавливается ваша программа, можно создать такой подкаталог | + | При распространении потребуются следующие dll'ки: |
- | {{cmd|%PATH_TO_APP%/QtPlugins/}},<br /> | + | * dll'ки компилятора (для MinGW32 - mingwm10.dll и, если GCC4.4.x ещё libgcc_s_dw2-1.dll); |
+ | * dll'ки Qt из катлога {{cmd|%QTDIR%/bin/}}; | ||
+ | * dll'ки плагинов Qt из катлога {{cmd|%QTDIR%/Plugins/}} | ||
+ | |||
+ | == dll'ки Qt == | ||
+ | Из катлога {{cmd|%QTDIR%/bin/}} необходимо взять dll'ки тех модулей которые вы используете. По умолчанию используются модули QtCore и QtGui (QtCore4.dll и QtGui4.dll, соответственно). И dll'ки других модулей, например, если в pro-файле есть запись: | ||
+ | : QT += xml | ||
+ | то необходимо взять и QtXml4.dll.<br /> | ||
+ | {{Замечание|Если вы используете отладочную версию своей программы (CONFIG +{{=}} debug), то нужно взять dll'ки с буквой "'''d'''": | ||
+ | : QtCore'''d'''4.dll, QtGui'''d'''4.dll и QtXml'''d'''4.dll | ||
+ | для примера выше.}} | ||
+ | |||
+ | Эти dll'ки должны быть помещены в один каталог с исполняемым файлом вашего приложения. | ||
+ | |||
+ | == dll'ки плагинов Qt == | ||
+ | С плагинами Qt дела обстоят несколько сложнее. Причиной тому является факт жестко зашитых, в dll'ки, путей к плагинам Qt. Этот путь всегда выглядит так: {{cmd|%QTDIR%/Plugins/}}, где %QTDIR% - каталог, в котором собрана/установлена та версия библиотеки Qt, которая использовалась при сборке приложения. Следовательно, при запуске приложения, Qt ядро вашей программы (QtCore4.dll) будет пытатся найти плагины Qt в каталоге {{cmd|%QTDIR%/Plugins/}}. Вероятнее всего на компьютере пользователя такого каталога нет. Существует несколько способов указать приложению, где искать плагины. Далее описаны эти способы. | ||
+ | |||
+ | === Копирование плагинов в каталог с программой === | ||
+ | Как сказано в Асистенте (plugins-howto.html) | ||
+ | {{цитата|Когда приложение запущено, Qt сначала просматривает каталог исполняемого файла приложения в качестве '''pluginsbase'''. Например, если приложение находится в C:\Program Files\MyApp и имеет подключаемый модуль стиля, Qt будет искать в C:\Program Files\MyApp\styles.}} Другими словами, каталоги плагинов Qt (например, '''imageformats''' или '''sqldrivers''') необходимо скопировать в каталог, где расположен исполняемый фал приложения/ | ||
+ | |||
+ | <!-- | ||
+ | === Указание путей в самой программе === | ||
+ | В каталоге, куда устанавливается ваша программа, можно создать такой подкаталог {{cmd|%PATH_TO_APP%/QtPlugins/}},<br /> | ||
где %PATH_TO_APP% - путь к каталогу приложения. | где %PATH_TO_APP% - путь к каталогу приложения. | ||
В этот каталог необходимо скопировать из каталога {{cmd|%QTDIR%/Plugins/}} все содержимое или только то, что вам действительно нужно.<br /> | В этот каталог необходимо скопировать из каталога {{cmd|%QTDIR%/Plugins/}} все содержимое или только то, что вам действительно нужно.<br /> | ||
- | + | {{Замечание}} ''обязательно, сохраните структуру (иерархию) вложеных каталогов!'' | |
Затем вам нужно добавить несколько строк кода в ваше приложение. Функция '''main()''' должна выглядеть так: | Затем вам нужно добавить несколько строк кода в ваше приложение. Функция '''main()''' должна выглядеть так: | ||
- | + | <source lang=cpp-qt> | |
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||
{ | { | ||
Строка 24: | Строка 47: | ||
... | ... | ||
} | } | ||
- | + | </source> | |
+ | --> | ||
- | == Использование файла qt.config == | + | <!-- |
+ | === Использование файла qt.config === | ||
''(предстоит написать)'' | ''(предстоит написать)'' | ||
+ | --> | ||
+ | <!-- | ||
+ | === Переменная окружения QT_PLUGIN_PATH === | ||
+ | ''(предстоит написать)'' | ||
+ | --> | ||
== См. также == | == См. также == | ||
+ | * [http://www.doc.crossplatform.ru/qt/4.4.3/plugins-howto.html Как создать свой плагин] - Подробности о подключении плагинов в документации. | ||
* [[Qt/FAQ]] | * [[Qt/FAQ]] | ||
* [[Установка Qt4.3.x]] | * [[Установка Qt4.3.x]] | ||
- | * [http://doc.crossplatform.ru/qt/4. | + | * [http://doc.crossplatform.ru/qt/4.4.3/deployment.html Документация Qt 4.4.x - Развертывание приложений Qt] |
[[Категория:Qt FAQ]] | [[Категория:Qt FAQ]] |
Текущая версия на 12:58, 24 мая 2010
Как указано в Асистенте, библиотека Qt не является системной. Т.е. она не распространяется штатно с ОС MS Windows. Следовательно при распространении программ, написаных на Qt для ОС MS Windows необходимо вместе с вашей программой распространять и библиотеки (dll'ки) самой Qt.
Содержание |
[править] Общее описание
При распространении потребуются следующие dll'ки:
- dll'ки компилятора (для MinGW32 - mingwm10.dll и, если GCC4.4.x ещё libgcc_s_dw2-1.dll);
- dll'ки Qt из катлога
%QTDIR%/bin/
; - dll'ки плагинов Qt из катлога
%QTDIR%/Plugins/
[править] dll'ки Qt
Из катлога %QTDIR%/bin/
необходимо взять dll'ки тех модулей которые вы используете. По умолчанию используются модули QtCore и QtGui (QtCore4.dll и QtGui4.dll, соответственно). И dll'ки других модулей, например, если в pro-файле есть запись:
- QT += xml
то необходимо взять и QtXml4.dll.
![]() | Если вы используете отладочную версию своей программы (CONFIG += debug), то нужно взять dll'ки с буквой "d":
|
Эти dll'ки должны быть помещены в один каталог с исполняемым файлом вашего приложения.
[править] dll'ки плагинов Qt
С плагинами Qt дела обстоят несколько сложнее. Причиной тому является факт жестко зашитых, в dll'ки, путей к плагинам Qt. Этот путь всегда выглядит так: %QTDIR%/Plugins/
, где %QTDIR% - каталог, в котором собрана/установлена та версия библиотеки Qt, которая использовалась при сборке приложения. Следовательно, при запуске приложения, Qt ядро вашей программы (QtCore4.dll) будет пытатся найти плагины Qt в каталоге %QTDIR%/Plugins/
. Вероятнее всего на компьютере пользователя такого каталога нет. Существует несколько способов указать приложению, где искать плагины. Далее описаны эти способы.
[править] Копирование плагинов в каталог с программой
Как сказано в Асистенте (plugins-howto.html)
[править] См. также
- Как создать свой плагин - Подробности о подключении плагинов в документации.
- Qt/FAQ
- Установка Qt4.3.x
- Документация Qt 4.4.x - Развертывание приложений Qt