Подтвердить что ты не робот

Как установить Qt на Windows после сборки?

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

4b9b3361

Ответ 1

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

  • Очистка
    Запустите make clean в папке сборки, чтобы удалить все временные файлы.
  • Перемещение
    Скопируйте папку сборки в место, где вы хотите установить Qt. Позвольте называть его INSTALL_DIR.
  • Исправление путей, жестко закодированных в исполняемом qmake.exe
    Запустите qmake -query, чтобы узнать, какие пути скомпилированы (hardcoded) в qmake и
    а. Исправить пути, содержащие папку сборки, заменив ее на INSTALL_DIR с помощью qmake -set (1).
    или
    б. Создайте файл qt.conf в подпапке bin в INSTALL_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 (фактически файлов, так как вам нужен один файл для каждой установки Qt) (вариант 3b).

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

Ответ 2

Этот ответ является заменой для шагов 3 и 5 вышеприведенного ответа Piotr (в настоящее время рейтинг), но вам все равно могут потребоваться другие шаги в его ответе, в зависимости от того, чего вы пытаетесь достичь.

Подводя итог: после перемещения вашего каталога 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.

Ответ 3

Я могу настроить QT 5 на WINDOWS (сборка Visual Studio) с помощью префикса, например:

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

затем вызовите:

nmake
nmake install

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

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

Ответ 4

Очень странные люди утверждают, что в Windows нет "make install".

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

Как я использую Qt 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-битных построек с минимальным размером.

Ответ 5

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

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

Ответ 6

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

fart -c -i -r Makefile* $(INSTALL_ROOT)\qt-4.8.3 $(INSTALL_ROOT)\my-install-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.

Ответ 7

Шаг 1: Переместите Qt

  • Вырезать и вставить
  • Текущий каталог - 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 файлы для патчей-окон C:\tools\Qt\2010.02.1\Qt C:\sim\dep\Qt\2010.02.1\Qt

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

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

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

Ответ 8

Существует простая утилита QtMove (http://www.runfastsoft.com), которая легко справляется с этим.

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