Развертывание приложений Qt в MS Windows
Материал из Wiki.crossplatform.ru
Lit-uriy (Обсуждение | вклад) (в работе) |
Lit-uriy (Обсуждение | вклад) (в работе) |
||
Строка 1: | Строка 1: | ||
- | |||
Как указано в Асистенте, библиотека Qt не является системной. Т.е. она не распространяется штатно с ОС MS Windows. Следовательно при распространении программ, написаных на [[Qt]] для ОС MS Windows необходимо вместе с вашей программой распространять и библиотеки (dll'ки) самой Qt. | Как указано в Асистенте, библиотека Qt не является системной. Т.е. она не распространяется штатно с ОС MS Windows. Следовательно при распространении программ, написаных на [[Qt]] для ОС MS Windows необходимо вместе с вашей программой распространять и библиотеки (dll'ки) самой Qt. | ||
__TOC__ | __TOC__ | ||
Строка 9: | Строка 8: | ||
* dll'ки плагинов Qt из катлога {{cmd|%QTDIR%/Plugins/}} | * dll'ки плагинов Qt из катлога {{cmd|%QTDIR%/Plugins/}} | ||
- | + | == dll'ки Qt == | |
Из катлога {{cmd|%QTDIR%/bin/}} необходимо взять dll'ки тех модулей которые вы используете. По умолчанию используются модули QtCore и QtGui. | Из катлога {{cmd|%QTDIR%/bin/}} необходимо взять dll'ки тех модулей которые вы используете. По умолчанию используются модули QtCore и QtGui. | ||
+ | == dll'ки плагинов Qt == | ||
, может возникнуть проблема, например, с использованием плагинов. Причиной тому является факт жестко зашитых в dll'ки путей к компонентам Qt, например, к плагинам. Этот путь всегда выглядит так: {{cmd|%QTDIR%/Plugins/}}, где %QTDIR% - каталог, в которой собрана версия библиотеки Qt использовавшая при сборке приложения. Следовательно, при запуске приложения, Qt ядро вашей программы (QtCore.dll) будет пытатся найти плагины Qt в каталоге {{cmd|%QTDIR%/Plugins/}}. Вероятнее всего на компьютере пользователя такого каталога нет. Существует несколько способов обойти эту проблему. Далее описаны эти способы. | , может возникнуть проблема, например, с использованием плагинов. Причиной тому является факт жестко зашитых в dll'ки путей к компонентам Qt, например, к плагинам. Этот путь всегда выглядит так: {{cmd|%QTDIR%/Plugins/}}, где %QTDIR% - каталог, в которой собрана версия библиотеки Qt использовавшая при сборке приложения. Следовательно, при запуске приложения, Qt ядро вашей программы (QtCore.dll) будет пытатся найти плагины Qt в каталоге {{cmd|%QTDIR%/Plugins/}}. Вероятнее всего на компьютере пользователя такого каталога нет. Существует несколько способов обойти эту проблему. Далее описаны эти способы. | ||
- | == Указание путей в самой программе == | + | === Указание путей в самой программе === |
В каталоге, куда устанавливается ваша программа, можно создать такой подкаталог<br /> | В каталоге, куда устанавливается ваша программа, можно создать такой подкаталог<br /> | ||
{{cmd|%PATH_TO_APP%/QtPlugins/}},<br /> | {{cmd|%PATH_TO_APP%/QtPlugins/}},<br /> | ||
Строка 38: | Строка 38: | ||
}} | }} | ||
- | == Использование файла qt.config == | + | === Использование файла qt.config === |
''(предстоит написать)'' | ''(предстоит написать)'' | ||
Версия 04:43, 1 июня 2009
Как указано в Асистенте, библиотека Qt не является системной. Т.е. она не распространяется штатно с ОС MS Windows. Следовательно при распространении программ, написаных на Qt для ОС MS Windows необходимо вместе с вашей программой распространять и библиотеки (dll'ки) самой Qt.
Содержание |
Общее описание
При распространении потребуются следующие dll'ки:
- dll'ки компилятора (для MinGW32 - mingwm10.dll);
- dll'ки Qt из катлога
%QTDIR%/bin/
; - dll'ки плагинов Qt из катлога
%QTDIR%/Plugins/
dll'ки Qt
Из катлога %QTDIR%/bin/
необходимо взять dll'ки тех модулей которые вы используете. По умолчанию используются модули QtCore и QtGui.
dll'ки плагинов Qt
, может возникнуть проблема, например, с использованием плагинов. Причиной тому является факт жестко зашитых в dll'ки путей к компонентам Qt, например, к плагинам. Этот путь всегда выглядит так: %QTDIR%/Plugins/
, где %QTDIR% - каталог, в которой собрана версия библиотеки Qt использовавшая при сборке приложения. Следовательно, при запуске приложения, Qt ядро вашей программы (QtCore.dll) будет пытатся найти плагины Qt в каталоге %QTDIR%/Plugins/
. Вероятнее всего на компьютере пользователя такого каталога нет. Существует несколько способов обойти эту проблему. Далее описаны эти способы.
Указание путей в самой программе
В каталоге, куда устанавливается ваша программа, можно создать такой подкаталог
%PATH_TO_APP%/QtPlugins/
,
где %PATH_TO_APP% - путь к каталогу приложения.
В этот каталог необходимо скопировать из каталога %QTDIR%/Plugins/
все содержимое или только то, что вам действительно нужно.
Замечание: обязательно, сохраните структуру (иерархию) вложеных каталогов!
Затем вам нужно добавить несколько строк кода в ваше приложение. Функция main() должна выглядеть так:
int main(int argc, char *argv[]) { QApplication app(argc, argv); ... // изменим каталог плагинов (добавим каталог установки программы) QStringList list_path; // Список путей QDir dir = QDir(app.applicationDirPath()+"/QtPlugins/"); //Наш каталог %PATH_TO_APP%/QtPlugins/ list_path << dir.absolutePath () << app.libraryPaths (); //добавим в список и наши и стандартные пути app.setLibraryPaths( list_path ); //Установим новый список путей поиска для приложения ... }
Использование файла qt.config
(предстоит написать)