Comme dans la réponse d'Oleg, je crois que la variable correcte à définir est CMAKE_RUNTIME_OUTPUT_DIRECTORY . Nous utilisons ce qui suit dans notre racine CMakeLists.txt:
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)
Vous pouvez également spécifier les répertoires de sortie sur une base par cible:
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"
)
Dans les deux cas , vous pouvez ajouter _[CONFIG]
au nom de la variable / propriété pour rendre le répertoire de sortie appliquer à une configuration spécifique (les valeurs standard pour la configuration sont DEBUG
, RELEASE
, MINSIZEREL
et RELWITHDEBINFO
).
CMAKE_ARCHIVE_OUTPUT_DIRECTORY
, étant donné que la commandeinstall(TARGETS <target_name>)
se plaint toujours de "donné aucune DESTINATION RUNTIME pour la cible exécutable"? Cette variable est censée fournir une valeur par défaut, donc lainstall
commande ne doit pas se plaindre de l'absence deRUNTIME DESTINATION
.Utilisation
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/some/full/path/to/bin")
la source
Utilisez la
EXECUTABLE_OUTPUT_PATH
variable CMake pour définir le chemin requis. Pour plus de détails, reportez-vous à la documentation en ligne de CMake:Documentation CMake 2.8.8
la source
Quant à moi, j'utilise cmake 3.5, ci-dessous (
set variable
) ne fonctionne pas:mais cela fonctionne (
set set_target_properties
):la source
la source
utilisez cette configuration de ligne:
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build/)
placez votre projet CMakeLists.txt.
this $ {PROJECT_SOURCE_DIR} est votre répertoire source actuel où se trouve le projet.
et si vous vous demandez pourquoi $ {EXECUTABLE_OUTPUT_PATH}
vérifiez ce fichier
CMakeCache.txt
puis recherchez le mot-cléoutput path
,toutes les variables définies ici, cela donnerait une explication complète du projet tout
setting·
la source
la source
Indépendamment du fait que je le définis dans le CMakeLists.txt principal ou dans les fichiers individuels, cela suppose toujours que je veux que toutes les bibliothèques et tous les bacs soient hors du chemin principal, ce qui est l'hypothèse la moins utile de toutes.
la source
Pour ajouter à cela:
Si vous utilisez CMAKE pour générer une solution Visual Studio et que vous souhaitez que Visual Studio génère des fichiers compilés dans / bin, la réponse de Peter doit être légèrement modifiée:
la source