Развертывание приложений 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(qApp->applicationDirPath()+"/QtPlugins/"); //Наш каталог %PATH_TO_APP%/QtPlugins/ list_path << dir.absolutePath () << app.libraryPaths (); //добавим в список и наши и стандартные пути app.setLibraryPaths( list_path ); //Установим новый список путей поиска для приложения ... }
Использование файла qt.config
(предстоит написать)