Quiero realizar una compilación cruzada de las bibliotecas Qt (y eventualmente mi aplicación) para un destino Windows x86_64 usando una máquina host Linux x86_64. Siento que estoy cerca, pero puedo tener un malentendido fundamental de algunas partes de este proceso.
Comencé instalando todos los paquetes mingw en mi máquina Fedora y luego modificando el win32-g++
archivo qmake.conf para que se ajustara a mi entorno. Sin embargo, parece que me estoy quedando atascado con algunas opciones de configuración aparentemente obvias para Qt: -platform
y -xplatform
. La documentación de Qt dice que -platform
debería ser la arquitectura de la máquina host (donde está compilando) y -xplatform
debería ser la plataforma de destino para la que desea implementar. En mi caso, configuré -platform linux-g++-64
y -xplatform linux-win32-g++
donde linux-win32-g ++ es mi configuración win32-g ++ modificada.
Mi problema es que, después de ejecutar configure con estas opciones, veo que invoca el compilador de mi sistema en lugar del compilador cruzado (x86_64-w64-mingw32-gcc). Si omito la -xplatform
opción y la configuro -platform
en mi especificación de destino (linux-win32-g ++), invoca el compilador cruzado pero luego los errores cuando encuentra algunas funciones relacionadas con Unix no están definidas.
Aquí hay algunos resultados de mi último intento: http://pastebin.com/QCpKSNev .
Preguntas:
Cuando compilación cruzada algo así como Qt para Windows desde un servidor Linux, si el compilador nativo jamás invocarse? Es decir, durante un proceso de compilación cruzada, ¿no deberíamos usar solo el compilador cruzado? No veo por qué el script de configuración de Qt intenta invocar el compilador nativo de mi sistema cuando especifico la
-xplatform
opción.Si estoy usando un compilador cruzado mingw, ¿cuándo tendré que lidiar con un archivo de especificaciones? Los archivos de especificaciones para GCC siguen siendo un misterio para mí, así que me pregunto si algunos antecedentes aquí me ayudarán.
En general, más allá de especificar un compilador cruzado en mi qmake.conf, ¿qué más debo considerar?