En esta página

Cambios en el sistema de construcción de Qt 6

Gran parte del trabajo realizado en Qt 6 ha estado relacionado con la forma de compilar Qt y sus módulos. El objetivo era hacer Qt a prueba de futuro mediante el cambio a una herramienta de construcción ampliamente adoptada y popular: CMake.

Construyendo Qt desde las fuentes

El sistema de compilación de Qt 5 se construyó sobre qmake. En Qt 6, hemos portado el sistema de compilación a CMake.

Nota: Esto sólo afecta a los usuarios que quieren construir Qt desde las fuentes. Puedes seguir usando qmake como herramienta de compilación para tus aplicaciones.

Es posible configurar Qt directamente desde la línea de comandos invocando a cmake. Sin embargo, seguimos recomendando la herramienta de línea de comandos configure, que proporciona una interfaz posiblemente más agradable, y la comprobación de errores adicionales.

Ver también Qt Configure Options para una visión general de la nueva API configure.

CMake, Ninja como dependencias externas

Necesitas una versión reciente de CMake para configurar y compilar Qt. Para Qt 6.0, necesitamos CMake 3.16. A partir de Qt 6.2, necesitamos CMake 3.21 para construir Qt como librerías estáticas. A partir de Qt 6.6, se requiere CMake 3.21.1 para compilar Qt para plataformas Apple. A partir de Qt 6.9, se requiere CMake 3.22. También debes tener instalada una versión actualizada de la herramienta Ninja.

Tanto CMake como Ninja son herramientas de código abierto que pueden instalarse por diversos medios. También están disponibles en Qt Online Installer.

Ver Building Qt Sources para una visión más detallada de los requisitos de compilación en diferentes plataformas.

Seleccionar una licencia Qt

En Qt 5, configure le pedía que seleccionara si planeaba usar Qt bajo licencias comerciales o de código abierto. Si tenías múltiples licencias comerciales, también tenías que seleccionar la licencia que deseabas usar.

Hemos eliminado ambas selecciones en Qt 6. La elección de las licencias disponibles depende de los contratos legales que tengas con The Qt Company, no de ningún artefacto.

Las opciones configure -opensource, -commercial, y -confirm-license se ignoran en Qt 6, y podrían eliminarse en futuras versiones de Qt.

Reejecutar configure

A veces querrás volver a ejecutar configure para probar diferentes opciones de configuración. En Qt 5, configure almacenaba en caché diversa información del entorno entre ejecuciones, pero por lo demás comenzaba desde un estado limpio: Tenías que usar -redo, o usar el script de shell config. status, para reutilizar los argumentos de una ejecución anterior. También podías usar las opciones -recheck, -recheck-all para forzar una re-evaluación de las pruebas almacenadas en caché.

CMake y por lo tanto configure en Qt 6 almacena en caché los resultados de forma aún más agresiva. Las opciones de entorno detectadas, pero también las selecciones realizadas a través de otros argumentos de la línea de comandos, se almacenan en un archivo llamado CMakeCache.txt. Si ejecutas configure con nuevas opciones, las nuevas opciones se fusionan en este archivo. Borre el archivo para empezar desde cero. Las opciones de configuración anteriores ya no son compatibles.

Construir sólo partes de Qt

El sistema de compilación de Qt 5 permitía ejecutar la herramienta de compilación (por ejemplo make) en un subdirectorio para hacer una reconstrucción parcial.

CMake sigue un paradigma diferente y requiere que construyas los objetivos desde el directorio de nivel superior, teniendo en cuenta toda la construcción. Utilice ninja -t targets para ver todos los objetivos disponibles en la compilación.

Resolviendo Bibliotecas de Terceros

Una de las tareas de configure es detectar la disponibilidad de diferentes paquetes de terceros en el entorno. En Qt 5, configure usaba opcionalmente pkg-config para esto, pero también usaba varias comprobaciones en tiempo de compilación. Estas comprobaciones se podían ajustar desde la línea de órdenes con varias asignaciones como ICU_PREFIX, ICU_LIBS, etc.

En Qt 6, configure se basa en CMake para resolver las dependencias. Para la mayoría de las dependencias, esto requiere que la biblioteca de terceros proporcione un paquete CMake en la ruta de búsqueda de CMake. Puede utilizar la variable CMAKE_PREFIX_PATH para ampliar esta ruta con ubicaciones personalizadas.

Algunas dependencias como OpenSSL también son detectados por la lógica dentro de CMake: Si OpenSSL no es recogido, puede que tenga que configurar la variable CMake OPENSSL_ROOT_DIR para que apunte al directorio de instalación.

Selección de la cadena de herramientas

En Qt 5, configure utilizaba los llamados mkspecs para especificar tanto la plataforma de compilación como la de destino(opciones-platform, -xplatform y -device ). CMake no utiliza estas opciones, sino que se basa en comprobaciones del entorno y en archivos toolchain (véase también la documentación CMake-toolchains). Las opciones -platform, -xplatform todavía están disponibles, pero sólo se utilizan para establecer los valores predeterminados para la herramienta qmake generada.

Compilación cruzada de Qt

La compilación cruzada es el acto de compilar código para un sistema informático (el objetivo) en un sistema diferente (el anfitrión). Un entorno de construcción para la compilación cruzada de aplicaciones Qt requiere que las herramientas Qt estén disponibles en el host (piensa en moc, rcc), así como que las librerías Qt estén construidas para el target.

En Qt 5, configure te permitía construir las herramientas de host así como las herramientas y librerías de destino en un solo paso. En Qt 6, esto ya no está soportado. En su lugar, tienes que tener Qt instalado y ejecutándose en el host antes de poder realizar la compilación cruzada de Qt en el destino. Además, la versión de Qt instalada debe ser la misma que la de la compilación cruzada.

Para más detalles sobre la compilación cruzada ver Configurar un dispositivo Linux embebido, Qt para Android - Construir desde el código fuente, y Qt para iOS - Construir desde el código fuente.

Portar plugins Qt y librerías adicionales

Aunque qmake sigue siendo compatible con la compilación de aplicaciones Qt, ya no se puede utilizar para compilar plugins personalizados de Qt, o bibliotecas que se basan en elementos internos del sistema de compilación Qt 5. Dichas bibliotecas o plugins deben ser adaptados a Qt. Tales bibliotecas o plugins deben ser portados a CMake para su uso con Qt 6.

En el momento del lanzamiento de Qt 6.0, la API para construir plugins o librerías Qt personalizadas está todavía en fase de previsualización técnica, lo que significa que puede cambiar en futuras versiones. La API pública estable estará disponible en una versión posterior de Qt 6.

© 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.