Rendre Qt disponible dans les projets CMake
Actuellement, la seule méthode prise en charge pour rendre Qt disponible dans les projets des utilisateurs consiste à l'avoir préinstallé sur le système, ou à utiliser tout autre workflow équivalent qui compile Qt à l'avance et le rend disponible find_package, comme vcpkg.
Lorsque vous utilisez Qt Creator ou qt-cmake (qt-cmake.bat sous Windows), l’emplacement d’installation de Qt est automatiquement transmis à l’appel CMake sous-jacent.
Lorsque vous utilisez directement cmake, les chemins de recherche généraux utilisés par CMake devraient couvrir la plupart des installations de Qt non définies par l’utilisateur. Pour plus de contrôle sur le paquet Qt à utiliser, vous pouvez définir https://cmake.org/cmake/help/latest/variable/PackageName_ROOT.html Qt6_ROOT en tant que variable d’environnement ou de cache pointant vers le chemin d’installation de Qt, ou en ajoutant ou en complétant le fichier CMAKE_PREFIX_PATH de la même manière. Par exemple, si le chemin d’installation est "~/Qt/6.12.0/gcc_64", vous le transmettrez en ligne de commande sous la forme -DQt6_ROOT=$HOME/Qt/6.12.0/gcc_64.
Remarque : lors d’ une compilation croisée (compilation pour une plateforme autre que celle sur laquelle vous vous trouvez, telle que WebAssembly ou Android) et lors de l’utilisation de la version standard d’ cmake, définissez ` CMAKE_TOOLCHAIN_FILE ` au lieu de chemins de recherche tels que ` Qt6_ROOT ` ou ` CMAKE_PREFIX_PATH`. Sous Linux, le fichier de la chaîne d’outils (spécifique à une plateforme cible particulière) se trouve généralement à un chemin similaire à celui-ci : ` "~/Qt/6.12.0/wasm_singlethread/lib/cmake/Qt6/qt.toolchain.cmake"`. Il définit les variables requises telles que CMAKE_PREFIX_PATH, CMAKE_FIND_ROOT_PATH et QT_HOST_PATH.
cmake_minimum_required(VERSION 3.16)
project(helloworld)
find_package(Qt6 REQUIRED)Le package Qt est divisé en plusieurs modules que vous devez inclure en fonction de la portée de votre projet, le plus basique étant
find_package(Qt6 REQUIRED COMPONENTS Core)CMake moderne prend en charge d’autres fournisseurs de dépendances tels que FetchContent; cependant, l’utilisation de Qt avec FetchContent n’est pas prise en charge en raison d’une intégration étroite des fonctionnalités de Qt au sein même de CMake. L’ajout de sources Qt via add_subdirectory et les sous-modules Git n’est pas non plus pris en charge.
Remarque : l’appel de find_package(Qt6) dans un sous-répertoire autre que celui où il est utilisé, ou à l’intérieur d’un function, n’est pas pris en charge. Cela peut entraîner diverses erreurs à des endroits imprévisibles.
À la place, appelez à plusieurs reprises ` find_package(Qt6) ` dans tous les sous-répertoires utilisant des fonctions Qt, ou déplacez l’appel à ` find_package(Qt6) ` vers le répertoire racine ` 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.