2010-03-13 10 views
10

gcc 4.4.2/Visual Studio C++ 2008cmake et le studio visuel

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

Maintenant, j'ai porté par application pour s'exécuter sur Windows.

I généré les fichiers de solution en utilisant CMake -G "Visual Studio 2008 9 ../src"

Cependant, je sais que CMake crée seulement un Makefile qui est 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 s'il utilise réellement le Makefile généré par cmake? Ou est-ce juste compiler l'application comme n'importe quel programme de studio visuel normal?

Un grand merci pour tous les conseils,

Répondre

18

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 (par solution de construction, ou projet de construction) "YourProject" sera construit et ensuite ZERO_CHECK sera construit, provoquant l'exécution de cmake et vérifiera si quelque chose a changé. Si quelque chose a changé, la solution et le fichier projet seront régénérés et Visual Studio vous demandera si vous souhaitez recharger.

La compilation de votre programme est effectuée par Visual Studio, comme si vous le configuriez manuellement, mais Visual Studio exécute cmake et vérifie si quelque chose a changé et les fichiers du projet doivent être régénérés.

+0

Ceci est fondamentalement correct, mais le projet ZERO_CHECK sera construit avant tout autre projet Visual Studio Chaque projet que CMake génère dépend directement de ZERO_CHECK, sauf pour le projet INSTALL de CMake, qui dépend uniquement de ALL_BUILD (qui à son tour a une dépendance à ZERO_CHECK ...) – Manuzor

10

CMake génère « vrai » .vcproj fichiers, si Visual Studio construire votre projet comme un projet Visual Studio normale. Il n'y a pas de makefiles impliqués. Cmake génère une solution Visual Studio et un fichier de projet.

+0

La partie qui m'intéresse est le CMakeList.txt. Est-ce que le compilateur fait quelque chose avec ça. La raison pour laquelle j'ai demandé était quand j'ai édité mon CMakelists.txt j'ai eu une erreur de lien parce que je n'ai pas ajouté un nom de bibliothèque «ws2_32» ie TARGET_LINK_LIBRARIES (clt client ws2_32) .Comment le compilateur utilise-t-il le CMakeLists.txt? – ant2009

+3

CMake crée pour vous des fichiers * .vcproj basés sur les informations contenues dans le fichier CMakeLists.txt La commande TARGET_LINK_LIBRARIES demande à CMake de mettre les directives nécessaires dans les fichiers * .vcproj pour que le compilateur Visual Studio lise les bibliothèques correctes. – JesperE

Questions connexes