qtcentre.org/threads/45337-QtMove-Move-Qt-build-everywhere

могу найти какую-либо информацию о том, как установить Qt на платформе Windows.
В вики-статьеКак настроить теневые сборки на Mac и Linux есть описание-prefix вариант вconfigure сценарий, но эта опция недоступна в Windows.
Я знаю, что могу использовать Qt прямо из папки сборки, но, кажется, неправильно выполнять шаг установки. Одна проблема с этим подходом - размер; Папка сборки Qt занимает около 4 ГБ пространства, тогда как после установки с использованием бинарного установщика Qt занимает около 1 ГБ. Я думаю, что разница связана с временными файлами, созданными во время сборки. Я надеюсь, что некоторые процедуры установки позволят установить (скопировать) только необходимые файлы, оставив временные файлы в папке сборки.

Ответы на вопрос(8)

//www.runfastsoft.com), которая может сделать это легко.

Запускает перемещенный qmake.exe, строит ваш .pro файл, и все должно быть связано с новыми библиотеками Qt.

 the_mandrill18 июн. 2014 г., 10:21
ссылка в настоящее время не работает Оригинальная тема былаqtcentre.org/threads/45337-QtMove-Move-Qt-build-everywhere
 Piotr Dobrogost21 янв. 2012 г., 11:18
Я думаю только патчингqmake.exe недостаточно. Странно, что нет контакта с автором.

Вырезать и вставитьТекущий каталог - C: \ tools \ QtЦелевой каталог -C: \ sim \ dep \ Qt

Шаг 2: Получить старый каталог Qt

Перейдите в C: \ sim \ dep \ Qt \ 2010.02.1 \ QtОткройте .qmake.cacheНайти переменную QT_SOURCE_TREEОбратите внимание на значение QT_SOURCE_TREEМой был C: \ tools \ Qt \ 2010.02.1 \ Qt

Шаг 3: Патч Qt

Перейдите в C: \ sim \ dep \ Qt \ 2010.02.1 \ binСинтаксис qpatch.exe список oldDir newDirФайлы qpatch.exe для windows-патча C: \ tools \ Qt \ 2010.02.1 \ Qt C: \ sim \ dep \ Qt \ 2010.02.1 \ Qt

Шаг 4: Установите переменные среды

set QTDIR = C: \ sim \ dep \ Qt \ 2010.02.1 \ Qtустановить QMAKESPEC = C: \ sim \ dep \ Qt \ 2010.02.1 \ Qt \ mkspecs \ win32-g ++установить PATH =% path%; C: \ sim \ dep \ Qt \ 2010.02.1 \ Qt \ binустановить PATH =% path%; C: \ sim \ dep \ Qt \ 2010.02.1 \ bin

Вы можете сделать все это с помощью командного файла. Это заняло у меня немало времени, чтобы потренироваться, и с тех пор сэкономило мне много времени. Это скрипт для автоматического обновления установки Qt на новые места. Пакетный файл доступенВот.

 kaboom27 янв. 2013 г., 19:08
нет qpatch.exe в Qt 4.8.2?

ящее время с самым высоким рейтингом), но вам могут понадобиться другие шаги в его ответе, в зависимости от того, чего вы пытаетесь достичь.

Это операция, которую официальный установщик использует для исправления жестко закодированных путей во время установки:qt.520.win32_msvc2012.addons / мета / installscript.qsВот как реализована операция:qtpatchoperation.cppЭто список файлов, которые он исправляет:файлы к патч-окна-qt5И это показывает, как вызвать операцию установки как отдельную команду из командной строки:Операции (Руководство по Qt Installer Framework)

Подводя итог: после перемещения вашего каталога Qt туда, куда вы хотите, скачайте любой официальный Qtмонтажники и запустите его со следующими аргументами командной строки:

cd <path>
installer.exe --runoperation QtPatch windows <path> qt5

замещать<path> с полным путем к вашему каталогу Qt после того, как вы его переместили (qtbase каталог, если вы используете Qt 5). Пропустить финалqt5 аргумент, если вы используете Qt 4.

Это исправит жестко закодированные пути в файлах qmake.exe, .prl и других. Это дает вам то же поведение, что и официальные установщики в этом отношении.

Для начального хода,nmake "INSTALL_ROOT=\somewhere" install работает для меня. Итак, это шаги 1 и 2 из ответа Петра. И мне не нужны шаги 4 или 6, FWIW.

 the_mandrill24 июн. 2014 г., 10:54
Похоже, этот код был реорганизован в установщике - теперь здесь:pkg_tools / qt.tools / мета / installscript.qs
 Oktalist17 июл. 2014 г., 16:35
@ iXô Реализация изменилась, но инструкции не изменились. Эта же команда все еще работает для меня.
 iXô17 июл. 2014 г., 11:34
Как the_mandrill сказал, что установщик изменился, я должен применить его к последней (5.3.1) установочной директории, но я не могу найти новый способ сделать это сейчас. Любой намек, пожалуйста?

Собственные инструкции по сборке Qt показать, как это делается, путем поиска / замены в каждом файле Makefile. Предполагая, что источник был извлечен в C: \ qt-4.8.3, и сборка была выполнена в этом каталоге, сделайте следующее:

stall-dir
set INSTALL_ROOT=
mingw32-make install

Затем создайте файл конфигурации, который сообщает qmake о его новом пути установки. Создайте текстовый файл C: \ my-install-dir \ bin \ qt.conf:

[Paths]
Prefix=C:/my-install-dir
Translations = translations

Затем, в качестве последнего шага (как любезно указал Рэнди), вам нужно исправить файл qmake.exe, что можно сделать с помощью простой утилиты под названиемQtMove, Этот же инструмент также автоматически обновляет всеprl файлы.

 Piotr Dobrogost01 июл. 2013 г., 22:55
Я думаю, когда вы создаетеqt.conf исправление файла не требуется. Из того, что я понимаю, есть 3 различных способа изменить пути, используемыеqmake; 1. исправление, 2. использованиеqmake -set3. Созданиеqt.conf файл (в порядке от наиболее инвазивных до наименее инвазивных).
Решение Вопроса

на Qt нет шага установки для Windows. Однако можно попытаться приблизить его, выполнив следующие операции.

очищающий
Бегатьmake clean в папке сборки, чтобы удалить все временные файлы.перемещение
Скопируйте папку сборки в то место, где вы хотите "установить" Qt. Давайте назовем этоINSTALL_DIR.Исправление путей жестко закодировано вqmake.exe исполнимый
Бегатьqmake -query чтобы увидеть, какие пути компилируются (жестко закодированы) в qmake и
а. Исправьте пути, содержащие папку сборки, заменив ееINSTALL_DIR с помощьюqmake -set (1).
или же
б. Создатьqt.conf файл в подпапке binINSTALL_DIR указание новых путей Qt внутри него.Добавление текущего каталога для включения пути
В предоставляемых Qt бинарных дистрибутивах pwd включен вQMAKE_INCDIR и, таким образом, в ваших проектах включить путь как "." Это не происходит по умолчанию в пользовательском Qt, поэтому вам нужно добавить следующую строку вmkspecs/YOUR-PLATFORM-HERE/qmake.conf файл:
QMAKE_INCDIR += "."фиксацияprl файлы
Когда вы добавляете компонент Qt в файл проекта (например,CONFIG += uitools), Qt смотрит в%QTDIR%/lib/QtUiTools.prl найти библиотечные зависимости этого компонента. Эти файлы будут иметь жестко заданный путь к каталогу, в котором Qt был сконфигурирован и собран. Вы должны заменить этот каталог сборки на тот, в который вы переместили Qt для всехlib/*.prl файлы.Сделать источник доступным
Если вы создали теневую сборку (сборку, созданную внутри папки, отличной от источника, к которой относится), заголовки вinclude только подпапкавперед к оригинальным заголовкам. Например;BUILD_DIR\include\QtCore\qabstractanimation.h выглядит так
#include "SRC_DIR/src/corelib/animation/qabstractanimation.h"
Если вы не хотите зависеть от наличия папки, содержащей источники, вы должны скопироватьSRC_DIR/src вложенную папку в папку назначения и исправьте все заголовки вinclude папка, чтобы они перешли на новое местоsrc вложенная папка.

Нижняя линия:
Процесс сборки Qt под Windows делает действительно неудобным перемещение (установку) Qt после сборки. Ты должен делать это только в том случае, если ... ну, я не могу найти вескую причину, чтобы пройти через все эти проблемы

Помните
Самый простой способ - поместить исходники Qt в папку, где вы хотите, чтобы Qt оставался после сборки, и сделать сборку в этой папке. Это делает все шаги, кроме 1 и 4 выше, ненужными.

1)
Переменные, которые вы устанавливаетеqmake -set сохраняются в ключе реестра
HKEY_CURRENT_USER\Software\Trolltech\QMake\<QMAKE_VERSION>.
Из-за этого у вас может возникнуть проблема, когда вы хотите иметь разные проекты, использующие разные версии Qt, которые имеют одинаковую версию qmake. В этом случае лучшим решением является использованиеqt.conf file (на самом деле файлы, так как вам нужен один файл для каждой установки Qt) (опция 3b).

Многие из приведенной выше информации поступают изRelocationTricks вики-страница, созданная Гейбом Руди. Проверьте егоQt (Qt4) Установщики Windows с предварительно установленными бинарными файлами с MSVC 2008 проект, который дает вам простое решение вышеуказанных проблем.

 steventaitinger10 июн. 2015 г., 19:28
Является ли это устаревшим сейчас, как указано ниже?
 Pavel Strakhov22 февр. 2013 г., 22:14
Будь осторожен сmake clean команда. Для моей статической сборки (я не знаю, имеет ли это значение для разделяемой), эта команда удалила все файлы pdb, связанные с символами отладки библиотеки, поэтому отладка стала менее информативной. Я был вынужден восстановить Qt.

make install, вы заметите, что установщик Qt для Windows просто исправляет dlls & pdbs для нового места установки.

Я бы предложил создать теневую сборку в том месте, где вы хотели бы ее установить. Вы можете удалить вручную*.obj файлы для экономии места.

 Piotr Dobrogost15 янв. 2011 г., 12:45
Благодарю. Вот чем я сейчас занимаюсь. Я задаю этот вопрос, потому что мне трудно поверить, что пользователи Qt, собирающие библиотеку под Windows, остались безЛюбые установить процедуру.
 ismail15 янв. 2011 г., 12:45
Ну, это печально, но это то, что есть, я много раз спрашивал в # qt-labs;)

префикса:

configure -prefix C:\the\path\I\want ...

затем позвоните:

nmake
nmake install

и последний установит Qt в C: \ the \ path \ I \ want.

Я сделал это без проблем с Qt 5.2.1 и 5.3.x, пока. Таким образом, любые более ранние проблемы, кажется, уже исправлены.

Я использовал это много раз, и я согласен, что это не то, что на других платформах, но это служит своей цели.

Как я использую Qt's make install в Windows (из cmd):

configure
(n/mingw32-)make
(n/mingw32-)make docs
(n/mingw32-)make install

Бит make install копирует все необходимые заголовки, чтобы иметь возможность удалить исходный каталог. Удалить все объекты и ненужные вещи:

del /S /Q *.obj lib\*.dll rmdir /S /Q docs-build qmake tools src

Это позволяет вам удалить исходный каталог. Я не знаю, какое влияние это оказывает на отладку исходного кода Qt, но это, безусловно, уменьшает размер теневой сборки. Я использую его для поддержки 32- и 64-битных сборок с минимальным размером.

 rubenvb07 февр. 2013 г., 10:41
@vikki обратная косая черта была поглощена форматированием. Я исправил это сейчас. Что я делаю, это удалитькопии из длл вlib подкаталог. Библиотеки импорта позаботятся о связывании, а DLL вbin убедитесь, что все работает как положено.
 vikki07 февр. 2013 г., 06:56
Я не знаю, работало ли это на старых версиях qt, но с qt5del /s /q *.obj lib*.dll удаляет библиотеки, такие как libGLESv2.dll, которые нужны помощнику и qt-конструктору.
 rubenvb15 янв. 2011 г., 23:14
@Piotr: по сути, все, что вы можете сделать, это собрать его там, где вы планируете его установить. Перемещение сложно, но, возможно, что-то вроде этого может помочь:tb-nguyen.blogspot.com/2010/10/..., Я помню проект кода Google, работающий над способом создания собственного установщика "Qt SDK" с пользовательской сборкой, но, похоже, я больше не могу его найти.
 Piotr Dobrogost15 янв. 2011 г., 20:14
«Бит make install копирует все необходимые заголовки (...)» - куда он их копирует и как установить это местоположение?
 rubenvb15 янв. 2011 г., 23:16
Ах, мы идемcode.google.com/p/qt-msvc-installer/wiki/RelocationTricks, Совсем не просто ...

Ваш ответ на вопрос