tutorial - sdk qt
Construcción de Qt 5 en Linux, para Windows (2)
Aquí están las instrucciones completas:
Consíguelo:
git clone https://github.com/mxe/mxe.git
Instalar dependencias de compilación
Build Qt 5 para Windows:
cd mxe && make qtbase
Esto primero construirá sus dependencias y las herramientas de construcción cruzada; Debería llevar menos de una hora en una máquina rápida con acceso decente a Internet.
Debido a la nueva naturaleza modular de Qt 5, varios componentes principales de Qt están ahora en diferentes bolas de tarball. La que seleccioné arriba,
qtbase
, debería darle suficiente funcionalidad para ejecutar aplicaciones de GUI ordinarias, que es todo lo que necesitaba para mi propia (pequeña) aplicación.Si quieres construir todo Qt 5 en su lugar, necesitarás ejecutar
make qt5
(en lugar demake qtbase
). Tenga en cuenta que llevará mucho más tiempo completarlo, así que asegúrese de que necesita la funcionalidad adicional.Acceda al directorio de su aplicación y ejecute la herramienta del generador de Qt Makefile:
<mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5
Construye tu proyecto:
make
Deberías encontrar el binario en el directorio ./release:
wine release/foo.exe
Algunas notas:
Esto fue probado en mi Debian 8 de 64 bits, y en Windows, por supuesto.
El resultado es un ejecutable estático de 32 bits, que funcionará bien en Windows de 64 bits.
Si quieres un ejecutable de 64 bits, compila Qt con:
make MXE_TARGETS=x86_64-w64-mingw32.static qtbase
El valor predeterminado de
MXE_TARGETS
esi686-w64-mingw32.static
.
Quería migrar mi aplicación Qt 4 para usar Qt 5 en su lugar. Estas instrucciones fallaron, debido a algunas diferencias con la forma en que MXE construye Qt 5, incluido el hecho de que utiliza archivos tarball Qt modularizados, en lugar de un tarball grande.
El comando de git checkout no es correcto. Ahora debe obtener su rama estable o fallará la construcción.
git clone https://github.com/mxe/mxe.git
debiera ser...
git clone -b stable https://github.com/mxe/mxe.git
Solo eso solucionó todos mis problemas con la construcción de qtbase, pero no dejó ninguna carpeta qt cuando terminó. Entonces el objetivo qt5 fallaría con errores oscuros. Carpeta eliminada, comprobada estable y funcionó a la perfección.