Outils pour utilisateurs

Outils du site


prog:cmake:vs

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
prog:cmake:vs [2022/04/24 17:23] – [Exécution de cmake] : ajout de visual studio 2022 rootprog:cmake:vs [2024/12/10 22:25] (Version actuelle) – [Exécution de cmake] : mise à jour de Générateur root
Ligne 1: Ligne 1:
 +=====Configuration=====
 ====Exécution de cmake==== ====Exécution de cmake====
-  toolset :+ 
 +  Toolset (''-T'')
  
 ^Visual Studio^toolset^ ^Visual Studio^toolset^
Ligne 12: Ligne 14:
 |142          |2019   | |142          |2019   |
 |143          |2022   | |143          |2022   |
 +
 +Il est aussi possible de spécifier l'architecture du host (du compilateur) et sa version: ''v143,version=14.36.17.6,host=x64''
 +
 +[[https://cmake.org/cmake/help/latest/variable/CMAKE_GENERATOR_TOOLSET.html#variable:CMAKE_GENERATOR_TOOLSET|CMAKE_GENERATOR_TOOLSET]] {{ :prog:cmake:vs:cmake_generator_toolset_cmake_3.31.2_documentation_10_12_2024_22_23_40_.html |Archive du 3.31.2 le 10/12/2024}}
 +
 +  * Architecture (''-A'')
 +
 +Liste des possibilités: ''x64'', ''Win32'', ''ARM'', ''ARM64''.
 +
 +  * Générateur (''-G'')
 +
 +^Générateur^
 +|''Visual Studio 6''|
 +|''Visual Studio 7''|
 +|''Visual Studio 7 .NET 2003''|
 +|''Visual Studio 8 2005''|
 +|''Visual Studio 9 2008''|
 +|''Visual Studio 10 2010''|
 +|''Visual Studio 11 2012''|
 +|''Visual Studio 12 2013''|
 +|''Visual Studio 14 2015''|
 +|''Visual Studio 15 2017''|
 +|''Visual Studio 16 2019''|
 +|''Visual Studio 17 2022''|
 +
  
 Puis appeler Puis appeler
  
-  cmake -T v143+<code bash> 
 +cmake -T v142 -G "Visual Studio 16 2019" -A x64 
 +</code> 
 + 
 +Il faut bien mettre les trois. Sinon, l'erreur suivante risque d'arriver : 
 + 
 +<code> 
 +$ cmake .. -T version=v142 
 +-- Building for: Visual Studio 17 2022 
 +</code>
  
 [[https://gitlab.kitware.com/cmake/cmake/blob/master/Help/variable/MSVC_TOOLSET_VERSION.rst|MSVC_TOOLSET_VERSION]] {{ :prog:cmake:msvc_toolset_version.txt |Archive du 20/09/2019}} [[https://gitlab.kitware.com/cmake/cmake/blob/master/Help/variable/MSVC_TOOLSET_VERSION.rst|MSVC_TOOLSET_VERSION]] {{ :prog:cmake:msvc_toolset_version.txt |Archive du 20/09/2019}}
  
-====Activer la compilation multiprocesseur /MP====+[[https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html|cmake-generators]] {{ :prog:cmake:vs:cmake-generators_7_cmake_3.31.2_documentation_10_12_2024_22_18_04_.html |Archive du  v3.31.2 le 10/12/2024}} 
 +====CMakeLists.txt==== 
 + 
 +  * Activer la compilation multiprocesseur /MP 
 + 
 +Cela active la compilation en parallèle des fichiers sources. Pas la compilation en parallèle des projets.
  
 <code> <code>
Ligne 27: Ligne 68:
 [[https://stackoverflow.com/questions/33858455/how-to-configure-cmake-in-a-way-that-it-generates-visual-studio-2013-project-fi|How to configure cmake in a way that it generates Visual Studio 2013+ project files with /MP option]] {{ :prog:cmake:vs:how_to_configure_cmake_in_a_way_that_it_generates_visual_studio_2013_project_files_with_mp_option_-_stack_overflow_2019-11-29_20_31_20_.html |Archive du 22/11/2015 le 29/11/2019}} [[https://stackoverflow.com/questions/33858455/how-to-configure-cmake-in-a-way-that-it-generates-visual-studio-2013-project-fi|How to configure cmake in a way that it generates Visual Studio 2013+ project files with /MP option]] {{ :prog:cmake:vs:how_to_configure_cmake_in_a_way_that_it_generates_visual_studio_2013_project_files_with_mp_option_-_stack_overflow_2019-11-29_20_31_20_.html |Archive du 22/11/2015 le 29/11/2019}}
  
-====Messages d'erreur==== +  * ''target_include_directories'' 
-===RuntimeLibrary, MTd_StaticDebug et MDd_DynamicDebug===+ 
 +L'utilisation de l'option ''SYSTEM'' permet de désactiver les warnings venant des ''include'' "système". Seulement, Visual Studio ne fera pas non plus d'indexation des entêtes ''*.h'' / ''*.hpp'' dans ces sous-dossiers. 
 + 
 +<WRAP center round important 60%> 
 +Théorie à confirmer 
 +</WRAP> 
 + 
 +=====Exécution===== 
 + 
 +  * Exécution en parallèle des projets 
 + 
 +<WRAP center round important 60%> 
 +L'activation de la compilation en parallèle des projets désactive la compilation en parallèle des fichiers source. 
 + 
 +[[https://gitlab.kitware.com/cmake/cmake/-/issues/20564|cmake --build: --parallel when used with msbuild does not enable parallelism within a project]] {{ :prog:cmake:vs:cmake_--build_--parallel_when_used_with_msbuild_does_not_enable_parallelism_within_a_project_20564_issues_cmake_cmake_gitlab_22_08_2022_12_17_14_.html |Archive du 09/04/2020 le 22/08/2022}} 
 +</WRAP> 
 + 
 +Pour activer la compilation en parallèle des fichiers source en ligne de commande, il est possible d'utiliser (pour Visual Studio seulement) : 
 + 
 +<code bash> 
 +cmake --build . --  /p:CL_MPcount=
 +</code> 
 + 
 +=====Messages d'erreur===== 
 + 
 +  * ''RuntimeLibrary''''MTd_StaticDebug'' et ''MDd_DynamicDebug'' 
 + 
 +Normalement, si les fichiers ''CMakeLists.txt'' sont bien fait, le générateur de projet ''Visual Studio'' de ''CMake'' devrait correctement mettre les bonnes valeurs par défaut.
  
   error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in xxx.obj   error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in xxx.obj
Ligne 43: Ligne 111:
 [[https://stackoverflow.com/questions/10113017/setting-the-msvc-runtime-in-cmake|Setting the MSVC runtime in CMake]] {{ :prog:cmake:vs:visual_studio_-_setting_the_msvc_runtime_in_cmake_-_stack_overflow_2021-04-10_21_54_38_.html |Archive du 11/04/2012 le 10/04/2021}} [[https://stackoverflow.com/questions/10113017/setting-the-msvc-runtime-in-cmake|Setting the MSVC runtime in CMake]] {{ :prog:cmake:vs:visual_studio_-_setting_the_msvc_runtime_in_cmake_-_stack_overflow_2021-04-10_21_54_38_.html |Archive du 11/04/2012 le 10/04/2021}}
  
-===__acrt_first_block == header===+  * ''%%__%%acrt_first_block == header''
  
 Ici, c'est l'inverse du paragraphe précédent. Il faut désactiver la ligne ''CMAKE_MSVC_RUNTIME_LIBRARY''. Ici, c'est l'inverse du paragraphe précédent. Il faut désactiver la ligne ''CMAKE_MSVC_RUNTIME_LIBRARY''.
prog/cmake/vs.1650813808.txt.gz · Dernière modification : 2022/04/24 17:23 de root