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.
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