Развертывание приложений Qt в MS Windows

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Содержание

Введение

При распространении программ, написаных на Qt под платформу MS Windows, может возникнуть проблема, например, с использованием плагинов. Причиной тому является факт жестко зашитых в 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

(предстоит написать)


См. также