Qu'est-ce qu'un générateur CMake?
J'ai lu la documentation.
Il dit:
A CMake Generator is responsible for writing the input files for a native build system.
Qu'est-ce exactement est-ce à dire?
Si j'ai un ensemble de fichiers C++ dans mon projet, ce sont les fichiers d'entrée?
Si je suis sous Linux, ce qui est d'origine de mon système de build par défaut? Make
?
Pourquoi les fichiers d'entrée doivent être written
par le générateur s'ils existent déjà?
source d'informationauteur batman
Vous devez vous connecter pour publier un commentaire.
Qu'est ce qu'un générateur?
De comprendre ce qu'un générateur est, nous devons d'abord regarder ce qui est un système de construction. CMake ne compile pas ou lier des fichiers source. Il a utilisé une générateur à créer des fichiers de configuration pour un système de construction. Le système utilise ces fichiers pour compiler et lier des fichiers de code source.
Alors, quel est un système de construction?
Un système de construction est un terme large qui regroupe un ensemble d'outils généralement utilisé pour compiler et lier le code source, mais il peut également inclure des outils auxiliaires utilisés au cours d'un processus de construction.
Par exemple, dans un environnement multi-étape de construction du système, un exécutable peut être construit pour être utilisé dans le processus de construction d'une autre construction.
Selon la chaîne d'outils utilisés sur un système, CMake va générer plusieurs fichiers et dossiers afin de permettre la construction de la source des fichiers référencés dans le CMakeLists.txt et le soutien .cmake fichiers.
Parfois plusieurs systèmes de construction peut être installé sur un ordinateur, comme pour Windows, vous pourriez avoir un Visual Studio et MinGW système de construction. CMake permet de spécifier si ces systèmes de construction pour générer les fichiers de configuration pour les.
CMake comprend un certain nombre de
Command-Line
IDE
etExtra
générateurs.De Ligne De Commande Outil De Construction Des Générateurs De
Ces générateurs sont pour la version de ligne de commande des outils, tels que la marque et le Ninja. L'outil choisi de la chaîne doit être configuré avant de générer le système de compilation avec CMake.
Suivants sont pris en charge(**):
IDE Outil de construction des Générateurs de
Ces générateurs sont pour les Environnements de Développement Intégrés qui incluent leur propre compilateur. Des exemples sont Visual Studio et Xcode incluent un compilateur natif.
Suivants sont pris en charge(**):
Supplémentaire Générateurs
Ce sont des générateurs de créer une configuration de travailler avec un autre IDE de l'outil et doit être inclus avec un IDE ou en Ligne de Commande du générateur.
Suivants sont pris en charge(**):
Oui, ils sont certains des fichiers d'entrée. Pour un système de construction, vous disposez également d'un MakeFile. Pour Visual Studio, vous disposez d'un fichier de solution (.sln). Avec les deux systèmes, il y a des fichiers supplémentaires nécessaires que CMake sait comment créer donné CMakeLists.txt fichier.
En général, oui, mais d'autres systèmes de construction pourrait être le programme d'installation comme Ninja.
Certains fichiers source peuvent déjà exister, mais CMake a la capacité de générer un en-tête et les fichiers source. Aussi, comme mentionné ci-dessus, il y a des fichiers de configuration qui doit être généré qui dépendent de la source des fichiers fournis dans le CMakeLists.txt fichier.
** Selon la la documentation pour CMake Version 3.9
signifie que CMake prépare les scripts de compilation pour un natif du système de construction lorsque aucun générateur n'est spécifié. Sous Linux, le système de génération par défaut est
Make
et son fichier d'entrée sontmakefiles
qui sont ensuite interprétées et une construction est exécutée en conséquence. Avant la première exécution de CMake scripts de compilation n'existent pas.Les fichiers source C++ (ou de toute autre source de fichiers) ne sont pas des fichiers d'entrée pour un système de construction. Système de génération de scripts de spécifier comment traiter les fichier source afin de produire des exécutables binaires.
Autant que je sache, le standard natif système de compilation sous Unix est "GNU make (gmake)" connu comme le "faire".
Les gens de chez google a également publié un autre Outil appelé "Ninja".