Compilación cruzada de Qt
Esta página describe el proceso general y los requisitos de la compilación cruzada de Qt.
Si sólo buscas una forma de crear un host Qt, consulta Crear el host build de Qt.
Términos y definiciones
Compilación cruzada significa configurar y compilar para una plataforma de destino que es diferente de tu plataforma anfitriona.
El host es el ordenador en el que estás compilando Qt, por ejemplo una máquina Linux. El destino es el dispositivo para el que estás compilando Qt, por ejemplo una tableta Android.
Al compilar Qt, se ejecutan varias herramientas que generan código o realizan algún otro tipo de procesamiento. Estas herramientas se ejecutan en el host y por lo tanto se denominan herramientas host. Estas herramientas forman parte de una compilación de Qt. Esta compilación debe estar preparada como prerrequisito para compilar Qt para la plataforma de destino.
Una compilación mínima de Qt es una compilación de Qt que sólo contiene las herramientas necesarias para crear una compilación de Qt.
Qt se construye con CMake, y CMake necesita un archivo toolchain al realizar la compilación cruzada. Este archivo contiene información sobre la plataforma de destino y la cadena de herramientas utilizada. Consulte la documentación de CMake sobre la compilación cruzada.
Para algunas plataformas de destino, el script de configuración de Qt selecciona automáticamente el archivo. Consulte la documentación específica de la plataforma de destino deseada para obtener más detalles.
Para algunas plataformas de destino, es necesario especificar un sysroot. Se trata de un entorno autónomo que incluye todos los archivos y bibliotecas necesarios para compilar y enlazar aplicaciones.
Notas generales sobre la compilación de Qt en el host
Durante la compilación de Qt para el destino, herramientas como moc, rcc, qmlcachegen, qsb, y otras, son invocadas desde allí. Por ejemplo, si se realiza una compilación cruzada para ARM en una máquina x64, primero debe estar disponible una compilación local x64 de la misma versión de Qt. La ruta a esta compilación de Qt se pasará a configure o cmake. La compilación anfitriona de Qt es normalmente una compilación normal de Qt para su dispositivo anfitrión.
La compilación host de Qt debe contener todas las herramientas host necesarias para compilar Qt para la plataforma de destino. Por ejemplo, si se supone que tu Qt de destino soporta Qt Quick, el host Qt debe contener qsb, el compilador de shaders. Una manera fácil de asegurarse de que el Qt del host proporciona todas las herramientas necesarias es construir los mismos módulos Qt en el host que necesitarás en el destino.
Evita construir el Qt anfitrión estáticamente si el Qt de destino se construye compartido. Una compilación estática de Qt podría no contener todas las herramientas necesarias para compilar un Qt compartido.
Asegúrate de que utilizas la misma versión de Qt para el host y el destino Qt para evitar problemas de incompatibilidad.
Creación de la compilación host de Qt
Consulte la documentación del host deseado para más detalles sobre cómo construir Qt para esa plataforma.
Para construir un host Qt mínimo, utilice el siguiente comando de construcción después de configurar Qt:
mkdir ~/QtHostBuild cd ~/QtHostBuild ~/QtSource/configure -developer-build -nomake tests cmake --build . --target host_tools
Esta compilación no será adecuada para desarrollar programas Qt para su plataforma anfitriona, pero contendrá las herramientas necesarias para la compilación cruzada de Qt.
Especificar la compilación host de Qt al realizar la compilación cruzada
Al realizar la compilación cruzada, debes apuntar el Qt de destino a la ubicación del Qt de host.
Cuando se usa el script configure, se usa
~/QtSource/configure -qt-host-path ~/QtHostBuild ...target-specific options...
Si usa CMake directamente, use
cmake -S ~/QtSource -DQT_HOST_PATH=~/QtHostBuild ...target-specific options...
Consulte la documentación del objetivo deseado para las opciones específicas del objetivo.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.