"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > ## Comment puis-je utiliser plusieurs compilateurs pour C++ dans un seul projet CMake ?

## Comment puis-je utiliser plusieurs compilateurs pour C++ dans un seul projet CMake ?

Publié le 2024-11-08
Parcourir:302

## How Can I Use Multiple Compilers for C   in a Single CMake Project?

CMake : navigation dans plusieurs compilateurs pour une seule langue

CMake adhère au principe d'attribution d'un seul CMAKE_CXX_COMPILER pour tous les fichiers source C au sein d'un Fichier CMakeLists.txt. Cette approche pose des défis lorsque l'on tente de combiner l'hôte et la compilation croisée dans un seul fichier CMakeLists.txt.

Le dilemme : plusieurs compilateurs pour le même langage

Selon la question initiale, le nœud du problème réside dans la recherche d'une solution permettant d'utiliser plusieurs compilateurs pour le même langage, en particulier C .

Le compromis : options limitées

Malheureusement , la conception de CMake ne répond pas facilement à cette exigence. CMake conserve un ensemble unique de propriétés du compilateur qui s'appliquent à toutes les cibles d'un fichier CMakeLists.txt. Par conséquent, pour utiliser plusieurs compilateurs, il est nécessaire d'exécuter CMake deux fois.

Alternatives : commandes personnalisées ou fichiers séparés

Une solution de contournement implique l'utilisation de commandes personnalisées, essentiellement créer des scripts shell glorifiés. Cependant, cette approche s'écarte de l'objectif souhaité.

Une solution plus propre implique de séparer les processus de compilation en fichiers CMakeLists.txt distincts. Bien qu’il empêche la liaison entre différentes architectures, il élimine le besoin de code redondant. Pour maintenir la cohérence, les sections communes des scripts CMake peuvent être extraites dans des fichiers séparés et incluses via la fonction include().

Inconvénients : commodité pour la complexité

Le principal L'inconvénient de cette approche est la perte de la compilation en une seule commande. Pour atténuer ce problème, un script wrapper peut être créé dans un langage de script préféré pour appeler les commandes CMake nécessaires.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3