Редактирование: Развертывание приложений Qt в MS Windows
Материал из Wiki.crossplatform.ru
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
- | + | == Введение == | |
- | + | При распространении программ, написаных на [[Qt]] под платформу MS Windows, может возникнуть проблема, например, с использованием плагинов. Причиной тому является факт жестко заштых в dll'ки путей к компонентам Qt, например, к плагинам. Этот путь всегда выглядит так: {{cmd|%QTDIR%/Plugins/}}, где %QTDIR% - каталог, в которой собрана версия библиотеки Qt использовавшая при сборке приложения. Следовательно, при запуске приложения, Qt ядро вашей программы (QtCore.dll) будет пытатся найти плагины Qt в каталоге {{cmd|%QTDIR%/Plugins/}}. Вероятнее всего на компьютере пользователя такого каталога нет. Существует несколько способов обойти эту проблему. Далее описаны эти способы. | |
- | |||
- | |||
- | |||
- | |||
- | |||
- | + | == Указание путей в самой программе == | |
- | + | В каталоге, куда устанавливается ваша программа, можно создать такой подкаталог<br /> | |
- | + | {{cmd|%PATH_TO_APP%/QtPlugins/}},<br /> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | В каталоге, куда устанавливается ваша программа, можно создать такой подкаталог {{cmd|%PATH_TO_APP%/QtPlugins/}},<br /> | + | |
где %PATH_TO_APP% - путь к каталогу приложения. | где %PATH_TO_APP% - путь к каталогу приложения. | ||
- | В этот каталог необходимо скопировать из каталога {{cmd|%QTDIR%/Plugins/}} все содержимое или только то, что вам действительно нужно. | + | В этот каталог необходимо скопировать из каталога {{cmd|%QTDIR%/Plugins/}} все содержимое или только то, что вам действительно нужно. Но, обязательно, сохраните структуру вложеных каталогов! |
- | + | ||
Затем вам нужно добавить несколько строк кода в ваше приложение. Функция '''main()''' должна выглядеть так: | Затем вам нужно добавить несколько строк кода в ваше приложение. Функция '''main()''' должна выглядеть так: | ||
- | + | {{code|qt|code= | |
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||
{ | { | ||
Строка 42: | Строка 19: | ||
QStringList list_path; // Список путей | QStringList list_path; // Список путей | ||
- | QDir dir = QDir( | + | QDir dir = QDir(qApp->applicationDirPath()+"/QtPlugins/"); //Наш каталог %PATH_TO_APP%/QtPlugins/ |
list_path << dir.absolutePath () << app.libraryPaths (); //добавим в список и наши и стандартные пути | list_path << dir.absolutePath () << app.libraryPaths (); //добавим в список и наши и стандартные пути | ||
app.setLibraryPaths( list_path ); //Установим новый список путей поиска для приложения | app.setLibraryPaths( list_path ); //Установим новый список путей поиска для приложения | ||
... | ... | ||
} | } | ||
- | + | }} | |
- | + | ||
- | + | ||
- | + | == Использование файла qt.config == | |
''(предстоит написать)'' | ''(предстоит написать)'' | ||
- | |||
- | |||
- | |||
- | |||
- | |||
== См. также == | == См. также == | ||
- | |||
* [[Qt/FAQ]] | * [[Qt/FAQ]] | ||
* [[Установка Qt4.3.x]] | * [[Установка Qt4.3.x]] | ||
- | |||
[[Категория:Qt FAQ]] | [[Категория:Qt FAQ]] |