open - ¿Cómo instalar Qt en Windows después de construir?
qt5 (8)
Como dice İsmail, no hay un paso de instalación para Qt en Windows. Sin embargo, se puede intentar aproximarlo realizando las siguientes operaciones.
- Limpieza
Ejecutemake clean
en la carpeta de compilación para eliminar todos los archivos temporales. - Emocionante
Copie la carpeta de compilación en el lugar donde desee que Qt esté "instalado". LlamémosloINSTALL_DIR
. - Corregir rutas codificadas en el ejecutable
qmake.exe
Ejecuteqmake -query
para ver qué rutas se compilan (codificadas) en qmake y
a. Corrija las rutas que contienen la carpeta de compilación reemplazándola con elINSTALL_DIR
usandoqmake -set
(1).
o
segundo. Cree un archivoqt.conf
en la subcarpeta bin deINSTALL_DIR
especificando nuevas rutas Qt dentro de ella. - Agregando el directorio actual para incluir la ruta
En las distribuciones binarias proporcionadas por Qt, el pwd se incluye en elQMAKE_INCDIR
y, por lo tanto, termina en que sus proyectos incluyen la ruta como ".". Esto no sucede de manera predeterminada en un Qt creado a la medida, por lo que debe agregar la siguiente línea almkspecs/YOUR-PLATFORM-HERE/qmake.conf
:
QMAKE_INCDIR += "."
- Arreglando archivos
prl
Cuando agrega un componente Qt a un archivo de proyecto (comoCONFIG += uitools
), Qt busca en%QTDIR%/lib/QtUiTools.prl
para encontrar las dependencias de la biblioteca de ese componente. Estos archivos tendrán la ruta codificada del directorio en el que Qt se configuró y creó.lib/*.prl
reemplazar ese directorio de compilación con el directorio al que movió Qt para todos los archivoslib/*.prl
. - Haciendo disponible la fuente
Si realizó una compilación sombra (compilación hecha dentro de una carpeta que no sea la que contiene las fuentes), los encabezados en la subcarpeta deinclude
solo se remiten a los encabezados originales. Por ejemplo;BUILD_DIR/include/QtCore/qabstractanimation.h
tiene este aspecto
#include "SRC_DIR/src/corelib/animation/qabstractanimation.h"
Si no desea depender de la existencia de la carpeta que contiene las fuentes, debe copiar la subcarpetaSRC_DIR/src
a su carpeta de destino y corregir todos los encabezados de la carpeta deinclude
para que se reenvíen a la nueva ubicación de la subcarpetasrc
.
La línea de fondo:
El proceso de compilación de Qt en Windows hace que sea realmente incómodo mover (instalar) Qt después de construir. Debes hacer esto solo si ... bueno, no puedo encontrar ninguna buena razón para pasar por todo este problema.
Recuerda
La forma más fácil es colocar las fuentes de Qt en la carpeta donde desea que Qt se quede después de compilar y crear una compilación en esta carpeta. Esto hace que todos los pasos, pero 1 y 4 anteriores sean innecesarios.
1)
Las variables que configuró con qmake -set
se guardan en la clave de registro
HKEY_CURRENT_USER/Software/Trolltech/QMake/<QMAKE_VERSION>
.
Debido a esto, es posible que tenga un problema cuando le gustaría tener proyectos diferentes que usen diferentes versiones de Qt que tengan la misma versión de qmake. En este caso, la mejor solución es utilizar el archivo qt.conf
(en realidad, los archivos son necesarios, ya que necesita un archivo para cada instalación de Qt) (opción 3b).
Mucha de la información anterior proviene de la página wiki de RelocationTricks creada por Gabe Rudy. Echa un vistazo a su Qt (Qt4) Opensource Windows Installers de proyectos binarios pre-construidos con el proyecto MSVC 2008 que te ofrece una solución fácil para los problemas anteriores.
No puedo encontrar ninguna información sobre cómo instalar Qt integrado en Windows.
En el artículo de wiki Cómo configurar compilaciones en la sombra en Mac y Linux, hay una descripción de la opción de -prefix
en la configure
script, pero esta opción no está disponible en Windows.
Sé que puedo usar Qt directamente desde la carpeta de compilación, pero no parece lo correcto no realizar un paso de instalación. Un problema con este enfoque es el tamaño; La carpeta de compilación de Qt ocupa aproximadamente 4 GB de espacio, mientras que después de la instalación con el instalador binario, Qt ocupa aproximadamente 1 GB de espacio. Supongo que la diferencia se debe a los archivos temporales creados durante la construcción. Espero que algún procedimiento de instalación instale (copie) solo los archivos necesarios dejando archivos temporales en la carpeta de compilación.
Es muy extraño que la gente diga que no hay "make install" en Windows.
Lo he usado muchas veces y estoy de acuerdo en que no es lo que es en otras plataformas, pero cumple su función.
Cómo uso Qt''s make install en Windows (desde cmd):
configure
(n/mingw32-)make
(n/mingw32-)make docs
(n/mingw32-)make install
El bit make install copia todos los encabezados necesarios para poder eliminar su directorio de origen. Eliminar todos los objetos y cosas innecesarias:
del /S /Q *.obj lib/*.dll
rmdir /S /Q docs-build qmake tools src
Esto le permite eliminar el directorio de origen. No sé qué impacto tiene esto en la depuración del código fuente de Qt, pero seguro que reduce el tamaño de una compilación en la sombra. Lo uso para mantener versiones de 32 y 64 bits con un tamaño mínimo.
Esta respuesta es un reemplazo de los pasos 3 y 5 de la respuesta de Piotr (actualmente con la mejor calificación), pero es posible que aún necesite los otros pasos en su respuesta, dependiendo de lo que esté tratando de lograr.
- Esta es la operación que utiliza el instalador oficial para arreglar las rutas de acceso durante la instalación: qt.520.win32_msvc2012.addons/meta/installscript.qs
- Así es como se implementa la operación: qtpatchoperation.cpp
- Esta es la lista de archivos que corrige: files-to-patch-windows-qt5
- Y esto muestra cómo invocar una operación del instalador como un comando independiente desde la línea de comandos: Operaciones (Qt Installer Framework Manual)
Para resumir: después de mover el directorio de Qt a donde lo desee, descargue cualquiera de los installers oficiales de Qt y ejecútelo con los siguientes argumentos de la línea de comandos:
cd <path>
installer.exe --runoperation QtPatch windows <path> qt5
Reemplace <path>
con la ruta completa de su directorio Qt después de qtbase
(el directorio qtbase
si está usando Qt 5). Omita el argumento final qt5
si está utilizando Qt 4.
Esto solucionará las rutas codificadas en qmake.exe, archivos .prl y otros. Te da exactamente el mismo comportamiento que los instaladores oficiales tienen al respecto.
Para el movimiento inicial, nmake "INSTALL_ROOT=/somewhere" install
funciona para mí. Así que esos son los pasos 1 y 2 de la respuesta de Piotr cubiertos. Y no he necesitado los pasos 4 o 6, FWIW.
Hay una utilidad simple que QtMove (http://www.runfastsoft.com) puede hacer esto fácilmente.
Ejecuta el qmake.exe reubicado, construye tu archivo .pro y todo debería estar vinculado con las nuevas librerías Qt.
Paso 1: Mueve Qt
- Cortar y pegar
- Directorio actual - C: / herramientas / Qt
- Directorio de destino -C: / sim / dep / Qt
Paso 2: Obtener el viejo directorio Qt
- Vaya a C: / sim / dep / Qt / 2010.02.1 / Qt
- Abrir .qmake.cache
- Encuentra la variable QT_SOURCE_TREE
- Tenga en cuenta el valor de QT_SOURCE_TREE
- El mío era C: / tools / Qt / 2010.02.1 / Qt
Paso 3: Parche Qt
- Vaya a C: / sim / dep / Qt / 2010.02.1 / bin
- La sintaxis es qpatch.exe list oldDir newDir
- archivos qpatch.exe a patch-windows C: / tools / Qt / 2010.02.1 / Qt C: / sim / dep / Qt / 2010.02.1 / Qt
Paso 4: Establecer variables de entorno
- establecer QTDIR = C: / sim / dep / Qt / 2010.02.1 / Qt
- establecer QMAKESPEC = C: / sim / dep / Qt / 2010.02.1 / Qt / mkspecs / win32-g ++
- establezca PATH =% path%; C: / sim / dep / Qt / 2010.02.1 / Qt / bin
- establezca PATH =% path%; C: / sim / dep / Qt / 2010.02.1 / bin
Puedes hacer todo esto con un archivo por lotes. Esto me tomó bastante tiempo para hacer ejercicio y me ha ahorrado mucho tiempo desde entonces. Es un script para actualizar automáticamente una instalación de Qt en nuevas ubicaciones. El archivo por lotes está disponible here .
Puedo configurar QT 5 en WINDOWS (compilación de Visual Studio) con la opción de prefijo como:
configure -prefix C:/the/path/I/want ...
luego llame:
nmake
nmake install
y este último instalará Qt en C: / the / path / I / want.
Lo hice sin problemas con Qt 5.2.1 y 5.3.x, hasta ahora. Por lo tanto, cualquier problema anterior parece haberse solucionado por ahora.
Qt en Windows no se puede instalar con make install
, notará que el instalador de Qt para Windows solo corrige parches dlls y pdbs para la nueva ubicación de instalación.
Lo que sugeriría es hacer una compilación sombra en el lugar donde le gustaría instalarlo. Puede eliminar manualmente los archivos *.obj
para ahorrar espacio.
Las propias instrucciones de compilación de Qt muestran cómo se hace esto, mediante la búsqueda / reemplazo dentro de cada Makefile. Suponiendo que la fuente se extrajo a C: / qt-4.8.3 y que la compilación se realizó dentro de ese directorio, haga lo siguiente:
fart -c -i -r Makefile* $(INSTALL_ROOT)/qt-4.8.3 $(INSTALL_ROOT)/my-install-dir
set INSTALL_ROOT=
mingw32-make install
Luego cree un archivo de configuración que le diga a qmake sobre su nueva ruta de instalación. Cree un archivo de texto C: / my-install-dir / bin / qt.conf:
[Paths]
Prefix=C:/my-install-dir
Translations = translations
Luego, como paso final (como Randy señaló amablemente), necesita un parche qmake.exe, que se puede hacer usando una utilidad simple llamada QtMove . Esta misma herramienta también actualiza automáticamente todos los archivos prl
.