Quelle est la configuration de construction par défaut de cmake

Dans cette réponse, il est indiqué que Debug est la configuration de construction par défaut de cmake.

Mais j’ai une observation différente:

Dans mon CMakeLists.txt, j’ai choisi de choisir les versions de débogage et de publication d’une lib en fonction de la configuration de construction actuelle.

target_link_libraries(MyApp debug Widgets_d) target_link_libraries(MyApp optimized Widgets) 

Il semble que lorsque j’appelle cmake sans séparer l’indicateur -DCMAKE_BUILD_TYPE, les widgets sont utilisés à la place de Widgets_d (lorsque je supprime les widgets et que je tente de les construire, je me plains de ne pas avoir lib). Cela signifie donc que par défaut, la configuration de construction est optimisée, pas de débogage.

Alors, quelle est en réalité la configuration de construction par défaut? S’il s’agit d’un débogage, qu’est-ce qui ne va pas avec mon CMakelists.txt?

target_link_libraries avec mot-clé optimized correspond à toutes les configurations, qui ne sont pas un débogage.

Essayez d’append un message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") à votre CMakeLists.txt pour afficher le type de construction actuel (je suppose qu’il devrait être vide).