Maison >développement back-end >C++ >Comment CMake peut-il organiser les fichiers compilés dans un répertoire « bin » distinct ?

Comment CMake peut-il organiser les fichiers compilés dans un répertoire « bin » distinct ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-13 07:51:11268parcourir

How Can CMake Organize Compiled Files into a Separate 'bin' Directory?

Organiser la sortie CMake dans un répertoire 'bin' séparé

Lorsque vous travaillez avec des projets multi-modules qui utilisent une architecture de plugin, il est souvent souhaitable pour garder les fichiers compilés séparés du code source. CMake, un puissant générateur de système de build, peut être configuré pour générer des fichiers compilés dans un répertoire « bin » désigné.

Pour y parvenir, la variable CMAKE_RUNTIME_OUTPUT_DIRECTORY peut être utilisée. En définissant cette variable, vous pouvez spécifier le répertoire dans lequel les fichiers exécutables et plugins seront enregistrés. Par exemple, dans le fichier racine CMakeLists.txt, les paramètres suivants peuvent être ajoutés :

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

Cette configuration demande à CMake d'enregistrer les archives et les bibliothèques dans un répertoire 'lib' du répertoire binaire, tandis que les exécutables et les bibliothèques dynamiques sont placées dans le répertoire 'bin'.

Vous pouvez également définir les répertoires de sortie pour chaque cible en utilisant set_target_properties() :

set_target_properties( targets...
    PROPERTIES
    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)

En employant l'une ou l'autre approche, vous pouvez séparer efficacement la sortie compilée du code source, garantissant ainsi une structure de projet plus propre et plus organisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn