Il y a tellement de façons de définir le compilateur en cmake. (CUKE_CXX_COMPILER, CXX, etc.)

Qu'est-ce qui a la priorité?

  • Cxx
  • CUKE_CXX_COMPILER
  • etc
0
buildSystemPerson 28 mars 2021 à 23:33

1 réponse

Meilleure réponse

Après avoir utilisé CMAKE pendant un an, je viens de finir par demander aux Devs.

Voici la réponse qu'ils ont fournie sur le discours:

Qu'est-ce qui a la priorité?

Ceci est commandé en termes de les plus spécifiques à moins spécifiques .

1. CUKE_TOOLCHAIN_FILE

Cette variable doit être définie avant le tout premier projet de projet dans votre projet CMAKE.

Pour être clair, le fichier Toolchain sera juste définir CUKE_ _Compiler dans le fichier. Il serait plus correct de dire qu'une boîte à outils pourrait changer les moyens de définir un compilateur.

2. CUKE_ _Compiler

Ces variables doivent être définies avant le tout premier projet de projet dans votre projet CMAKE.

3. Variables d'environnement

Une. Cc / cxx

Vous pouvez également spécifier vos compilateurs en définissant des variables d'environnement.

CC Spécifie le compilateur C: https://cmake.org/cmake/help/ Dernier / envivar / cc.html

CXX Spécifie le compilateur CXX: https://cmake.org/ CUPAKE / AIDE / DERNIÈRE / ENVARD / CXX.HTML? Highlight = CXX

B. Le chemin de l'environnement

En tant que Last Resort Clake tente de vérifier votre chemin et des recherches de noms binaires connus / courants dans le chemin.

Conseil: Utiliser le chemin pour raccourcir vos commandes!

Avoir des choses sur votre chemin peut également raccourcir les commandes ci-dessus afin que vous n'ayez pas à utiliser des chemins absolus.

Par exemple, si Clang ++ est dans votre chemin, vous pouvez également le faire.

cmake -S . -B build -D CMAKE_CXX_COMPILER=clang++

Pourquoi les conseils ci-dessus ne fonctionnent-ils pas pour le générateur Visual Studio?

Les conseils ci-dessus sont uniquement destinés aux générateurs de lignes de commande. (Ninja, maquillage unix, etc.)

Le générateur VS ne fait pas attention à Cumake_ _Compiler, donc le réglage ne fait rien pour ce générateur.

Visual Studio gère des choses légèrement différemment. Parce que bien sûr ça fait. C'est Visual Studio. Visual Studio joue par ses propres règles car il aime tout faire difficile.

Visual Studio est conçu autour des outils d'outils.

Les fichiers d'outils d'outils sont essentiellement la manière dont Visual Studio Solutions décrit le compilateur / liant.

Vous pouvez trouver vos cuillères à outils sur votre ordinateur si vous le souhaitez.

Voici où ils sont situés sur ma machine.

C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Microsoft\VC\v160\Platforms

enter image description here enter image description here

Cmake vous donne la possibilité de spécifier les outils et l'architecture que vous ciblez via Visual Studio.

Voir la documentation de cumake nécessaire ici:

Wow c'est un flux de travail agaçant uniquement pour Visual Studio. Comment puis-je utiliser Cumake + Visual Studio + Ninja

Quelle question étrangement spécifique qui a maintenant une réponse: https://docs.microsoft.com/en-us/cpp/build/cakakesettings-reference?View=MSVC-160

L'équipe Visual Studio a ajouté un soutien officiel de CMAKE. Vous pouvez donc utiliser Visual Studio avec cmake de manière beaucoup moins gênante.

Duckduckgo ou Google "Projets CMAKE dans Visual Studio"

2
jpr33 29 mars 2021 à 16:21