Hacer que Qt esté disponible en proyectos CMake

Actualmente el único método soportado para hacer que Qt esté disponible para los proyectos de los usuarios es tenerlo preinstalado en el sistema, o cualquier flujo de trabajo equivalente que construya Qt con antelación y lo ponga a disposición de los usuarios. find_packagecomo vcpkg.

Al utilizar Qt Creator o qt-cmake (qt-cmake.bat en Windows), la ubicación de la instalación de Qt se reenvía automáticamente a la llamada CMake subyacente.

Cuando se usa cmake directamente, las rutas de búsqueda generales usadas por CMake deberían cubrir la mayoría de las instalaciones de Qt para no usuarios. Para un mayor control sobre qué paquete Qt utilizar, puede pasar https://cmake.org/cmake/help/latest/variable/PackageName_ROOT.html Qt6_ROOT como una variable de entorno o caché apuntando a la ruta de instalación de Qt, o añadiendo o anexando a CMAKE_PREFIX_PATH de forma similar. Por ejemplo, si la ruta de instalación es "~/Qt/6.11.0/gcc_64", la pasaría en la línea de comandos como -DQt6_ROOT=$HOME/Qt/6.11.0/gcc_64.

Nota: Cuando se realiza la compilación cruzada (compilación para una plataforma distinta de la que se está utilizando, como WebAssembly o Android) y cuando se utiliza vanilla cmake, establezca CMAKE_TOOLCHAIN_FILE en lugar de rutas de búsqueda como Qt6_ROOT o CMAKE_PREFIX_PATH. En Linux, el archivo toolchain (específico para una plataforma de destino concreta) se encuentra normalmente en una ruta similar a esta: "~/Qt/6.11.0/wasm_singlethread/lib/cmake/Qt6/qt.toolchain.cmake". Establece las variables necesarias como CMAKE_PREFIX_PATH, CMAKE_FIND_ROOT_PATH, y QT_HOST_PATH.

cmake_minimum_required(VERSION 3.16)

project(helloworld)

find_package(Qt6 REQUIRED)

El paquete Qt está dividido en varios módulos que necesitas incluir dependiendo del alcance de tu proyecto, el más básico de los cuales es

find_package(Qt6 REQUIRED COMPONENTS Core)

El CMake moderno soporta otros proveedores de dependencias como FetchContent, sin embargo el uso de Qt con FetchContent no está soportado debido a una estrecha integración de las características de Qt dentro del propio CMake. Añadir fuentes Qt a través de add_subdirectory y submódulos Git tampoco está soportado.

Nota: Llamar a find_package(Qt6) en un subdirectorio distinto de donde se usa, o dentro de function no está soportado. Hacerlo puede causar varios fallos en ubicaciones impredecibles.

En su lugar, llame repetidamente a find_package(Qt6) en todos los ámbitos de subdirectorios que utilicen funciones Qt, o mueva la llamada a find_package(Qt6) a la raíz CMakeLists.txt.

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