2012-03-26 1 views
9

pendant environ 5 jours consécutifs J'ai essayé de configurer mon ordinateur avec l'environnement C++ pour la programmation avec des bibliothèques telles que sdl, glm, opengl. il est important pour nous de pouvoir l'exécuter sur des machines Unix sur des présentations, donc je suis en train de courir avec cmake. J'ai finalement réussi à l'utiliser avec cmake-gui, je ne vais même plus essayer d'utiliser un IDE. J'ai spécifié mon projet dossier et où construire les binaires, j'ai un dossier "CMakeFiles" avec un txt "CMakeCache", un fichier CMAKE "cmake_install.cmake" et un fichier "Makefile". aussi dans mon dossier "CMakeFiles" il y a beaucoup d'autres dossiers tels que "CMakeTmp", "CompilerIdC", "CompilerIdCXX etc" et dans les deux dossiers "Compiler *" a chacun un .exe qui ne fonctionne pas! Alors, où est mon exécutable voulu? J'ai ouvert cmd et navigué vers mon dossier et a essayé d'écrire "make" comme nous sommes censés faire en fonction de l'intruction. hélas, ça ne marchait pas très bien. En espérant que vous pourriez partager votre sagesse et aider un débutant comme moi!Utilisation de cmake sur Windows pour C++

alors qu'est-ce qui est nécessaire pour compiler des projets contenant des bibliothèques supplémentaires? jusqu'à présent, j'ai un compilateur, Mingw32, le dernier CMake et en utilisant le cmake-gui pour extraire les binaires, mais obtient des fichiers makefiles.

EDIT: hrrm. Est-ce seulement moi qui obtient ce genre de problèmes? Je peux ajouter que j'ai regarder en profondeur sur 10 tutoriels et 90% des étapes sont similaires (si la compilation avec VS que j'ai essayé au début):

  • Téléchargez le dernier SDL
  • Faire un dossier sur, par exemple C: \ SDL avec deux dossiers, inclure et lib
  • Copiez les libs et comprend de la SDL téléchargé
  • Faire de nouvelles VS projet, répertoires ++ ouvert VC et ajouter le dossier lib/incl sur, par exemple C: \ SDL
  • Ajouter au linker SDL.lib et SDLmain.lib (j'ai fait en sorte qu'ils soient liés, pas de problème ici)
  • système de changement de WINDOWS (en option si vous ne voulez pas deux fenêtres)
  • ajoutés comprennent les « bibliothèques supplémentaires »
  • Placez le fichier SDL.dll (que je suis arrivé de la dernière SDL) dans mon C: \ windows \ system32 (64SysWoW) et également dans mon fichier de projet.

donc ce que je suis à la recherche pour est gettning le CMake à travailler, car il génère et construit des sources avec succès (avec l'IUG) et je sens la fermeture im dans. dois-je ajouter des bibliothèques supplémentaires de sdl à mon compilateur mingw32 et/ou cmake?

+0

Il est difficile de savoir exactement ce qui se passe mal ici. Essayez de reproduire l'étape 1 du tutoriel à l'adresse http://www.cmake.org/cmake/help/cmake_tutorial.html et voyez si cela fonctionne pour vous. Sinon, postez exactement ce qui ne fonctionne pas. – jkerian

+0

Utilisez CMake pour générer des fichiers de projet Visual Studio pour votre projet, puis utilisez Visual Studio pour le compiler. – karlphillip

+0

@karlphillip J'ai également fait cela (avec vs 10 express) et a couru le fichier compilé, et a réussi à construire le fichier et a obtenu "1 réussi, e 0 échoué, 1 à jour, 1 sauté" et quand j'ai appuyé sur play J'ai: C: \ .......... \ Debug \ ALL_BUILD Le système ne peut pas trouver le fichier spécifié –

Répondre

5

Vous étiez presque là avec Visual Studio. Sélectionnez Visual Studio comme cible. Ouvrez le projet généré dans Visual Studio, construisez-le. (Juste comme vous l'avez déjà fait). Ensuite, au lieu d'essayer d'exécuter BUILD_ALL, exécutez un vrai projet qui crée un exécutable, il devrait également être dans cette liste. Juste un clic droit et "jouer".

Si vous obtenez toujours des erreurs, publiez-les en détail, y compris ce que vous avez fait avant l'erreur. Note: un projet CMake multiplateforme soigneusement configuré (aka le CMakeLists.txt) ne devrait pas nécessiter de bidouiller avec les répertoires VC++. Cela devrait fonctionner automagiquement, particulièrement avec les libs bien connues telles que SDL.

+0

wow, réellement travaillé. et quand j'ai besoin d'exécuter ce projet VS sur Ubuntu, je peux simplement copier le dossier du projet entier et, espérons-le, compiler à nouveau sans problème? –

+0

Dépend de votre définition du 'dossier de projet' :) Cmake s'attend à ce que le flux de travail suivant: exécute CMake dans le répertoire contenant les fichiers source et le CMakeLists.txt. Générez des fichiers de projet en fonction de la plateforme. Exécutez votre IDE ou d'autres outils pour compiler le projet, en utilisant les fichiers de projet générés. (comme Make + GCC, Visual Studio, ...) – Bob

+0

Yaman: Vous devez copier tous les CMakeFiles et relancer cmake sous Ubuntu. Vous ne pouvez pas vous attendre à ce que deux systèmes différents aient les mêmes versions de bibliothèques installées au même endroit. CMake est ici exactement pour cette raison - pour permettre la configuration du projet dans un environnement hétérogène. – stativ

1

Si j'ai bien compris, vous voulez utiliser CMake dans votre projet. J'utilise CMake dans tous mes projets.Je ne vous donnerai pas une explication exacte étape par étape, puisque j'utilise Arch Linux mais je l'ai aussi utilisé dans Windows 7.

  1. Pour faire CMake trouver les bibliothèques, il est souvent nécessaire de mettre en place la variable d'environnement CMAKE_PREFIX_PATH afin qu'il pointe vers les répertoires où les dépendances de votre projet sont installés.
  2. Définissez l'environnement PATH variable afin que vous puissiez appeler votre compilateur et faire juste en appelant en appelant par exemple. make. Je pense que vous devez faire manuellement que pour Mingw32, pour Visual Studio, vous pouvez utiliser le "Visual Studio Command Propt" qui a déjà ces variables définies.
  3. Exécutez CMake avec le générateur souhaité. Pour sélectionner le générateur à partir de la ligne de commande, utilisez l'option -G. Vous utiliserez probablement l'un des éléments suivants (les ... signifie autres options que vous voulez passer à cmake)

    GNU make utilisé dans MinGW utiliser cmake -G "MinGW Makefiles" ...

    Pour NMake du studio visuel utiliser cmake -G "NMake Makefiles" ...

    Il est également possible de créer un projet Visual Studio mais je ne le recommande pas, car il est assez difficile de mettre en place des builds automatiques alors. J'ai également eu quelques problèmes avec les dépendances quand j'ai essayé d'utiliser le projet VS.

  4. répertoire de changement dans votre répertoire de construction (.-À-dire celui où vous avez appelé cmake, il contient le fichier CMakeCache) et exécuter make ou nmake
4

si vous exécutez CMake par commande:

cmake -G "Visual Studio 14 Win64" path\to\source\dir 

vous devez exécuter cette commande pour continuer (dans invite de commande Visual Studio):

msbuild Project.sln 

soit si vous exécutez CMake:

cmake -G "NMake Makefiles" path\to\source\dir 

vous devez exécuter ce cmd pour continuer (dans Visual Studio Command Prompt):

nmake