10
votes

cmake et studio visuel

GCC 4.4.2 / Visual Studio C ++ 2008

J'ai utilisé CMAKE sur Linux, sans aucun problème.

Maintenant, j'ai porté par application pour exécuter des fenêtres.

J'ai généré les fichiers de solution à l'aide de Cumake -g "Visual Studio 9 2008 ../ SRC"

Cependant, je sais que Clake crée uniquement un maquillage utilisé par le compilateur pour construire votre application.

J'ouvre ma solution dans Visual Studio, j'appuie sur la touche F7 pour compiler.

Je me demande, utilise-t-il réellement le maquillage généré par CMAKE? Ou il s'agit simplement de compiler l'application comme n'importe quel programme de studio Visual normal?

Merci beaucoup pour tout conseil,


0 commentaires

3 Réponses :


11
votes

CUPAKE génère des fichiers "réels" .vcproj, alors Visual Studio construira votre projet comme n'importe quel projet Visual Studio normal. Il n'y a pas de maquillage impliqué.


2 commentaires

La partie que je suis curieux est la CMAKELIST.TXT. Le compilateur fait-il quelque chose avec cela? La raison que j'ai posée était quand j'ai édité mes cmakelists.txt, j'ai eu une erreur de liaison car je n'ai pas ajouté un nom de bibliothèque "WS2_32. I.e. cible_link_libraries (CLT Client WS2_32). Alors, comment le compilateur utilise-t-il le CMAKELIST.TXT? Merci.


Cmake crée des fichiers * .vcproj pour vous en fonction des informations contenues dans le fichier CMAKELIST.TXT. La commande cible_link_libraries indique à CMAKE de mettre dans les directives nécessaires dans les fichiers * .vCProj afin que le compilateur Visual Studio se connaisse avec les belles bibliothèques correctes.



18
votes

CMAKE génère une solution Visual Studio et un fichier de projet.

La solution contient au moins trois projets:

  • all_build
  • Yourproject
  • zero_check

    La solution est configurée de sorte que lorsque vous construisez votre projet (en solution de construction ou de construction de projet) "YourProject" sera construit puis zéro_check sera construit, entraînant exécuter et vérifier si quelque chose a changé. Si quelque chose a changé, la solution et le fichier de projet seront régénérés et Visual Studio demandera si vous souhaitez recharger.

    La compilation de votre programme est effectuée par Visual Studio, car si vous le configurez manuellement, mais Visual Studio exécutera CMAKE et vérifie ainsi si quelque chose a changé et que les fichiers de projet doivent être régénérés.


1 commentaires

Ceci est fondamentalement correct, mais le projet Zero_Check sera construit avant tout autre projet Visual Studio. Chaque projet que Clake génère a une dépendance directe de construction à Zero_Check, à l'exception du projet d'installation de CUKE, qui n'a qu'une dépendance sur All_Build (qui a à son tour une dépendance à zéro_check ...)



0
votes

du site Web de CMAKE:

CUPAKE est utilisé pour contrôler le processus de compilation logicielle à l'aide d'un simple plate-forme et compilateur de fichiers de configuration indépendants et génèrent Makefiles et espaces de travail natifs pouvant être utilisés dans le compilateur Environnement de votre choix.

La clé est, il génère NATICLE Makefiles et espaces de travail à partir des fichiers de configuration indépendants compiler ( cmakelists.txt fichiers).

La première étape avec CMAKE consiste à générer les fichiers de construction natifs à partir du cmakelists.txt , qui est makfiles sur Linux et < Code> Projets Visual Studio / Solution sous Windows. Ensuite, vous compilez / lien comme si les fichiers de construction natifs ont été créés à partir de zéro.

Lorsque vous modifiez un cmakelists.txt , cela signifie que le changement doit être propagé au schéma de construction natif. Ceci est fait en exécutant explicitement le générateur CMAKE à nouveau ou implicitement par le projet zero_check dans la solution Visual Studio.

CMAKE et Visual Studio a un exemple de commande de mappage de mappage simple ( qui existent dans cmakelists.txt ) aux projets Visual Studio.


0 commentaires