Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [SFML2] Compilation avec CMake  (Lu 4397 fois)

0 Membres et 1 Invité sur ce sujet

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
[SFML2] Compilation avec CMake
« le: Mai 06, 2013, 10:41:03 am »
Bonjour,

J'essai depuis 10 minutes au boulot de compiler (sous windows 7) la SFML2 avec CMake. Hélas j'ai ceci comme erreur :
Citer
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file:C:/Users/tertiaire33/Downloads/SFML-2.0-build/CMakeFiles/2.8.10.2/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file:C:/Users/tertiaire33/Downloads/SFML-2.0-build/CMakeFiles/2.8.10.2/CMakeCXXCompiler.cmake
Configuring incomplete, errors occurred!

Et je ne comprend pas comment corriger le problème. J'ai bien choisis Mingw Makefiles, j'ai bien indiqué l'emplacement du compilateur (qui est présent sur ma clé USB) ; bref j'ai fait ce qu'indique le tuto.

Je ne comprend pas surtout ce qu'est ce CMAKE_MAKE_PROGRAM qu'il semble réclamer.


Merci d'avance pour l'aide.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #1 le: Mai 06, 2013, 10:49:14 am »
Salut

Citer
J'essai depuis 10 minutes au boulot de compiler (sous windows 7) la SFML2
Pourquoi faire ?

Citer
Je ne comprend pas surtout ce qu'est ce CMAKE_MAKE_PROGRAM qu'il semble réclamer
C'est le programme qui sert à exécuter le makefile généré : mingw32-make pour MinGW/gcc, nmake pour Visual C++, etc.

Donc, plusieurs causes peuvent expliquer ton problème :
- tu as mal indiqué l'emplacement du compilateur (-> tu as fait quoi exactement ?)
- ton MinGW ne contient pas mingw32-make.exe -- ça arrive souvent lorsque tu installes MinGW par morceaux, tu en oublies toujours un ou deux importants ;)
Laurent Gomila - SFML developer

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #2 le: Mai 06, 2013, 11:38:53 am »
Bonjour Laurent,

C'est bon j'ai résolu le soucis. En fait quand je voulais lancer un programme SFML compilé au boulot, il refusait en renvoyant une erreur de point d'entrée dans libstdc++-6.dll.
En cherchant sur le net, ils disaient que c'est la version gcc qui correspond pas ; en effet tu as compilé en 4.7 et je suis en 4.7.1 avec la dernière version de codeblocks.

Pour CMAKE_MAKE_PROGRAM oui je l'ai compris après, j'ai donc pu le lui fournir et c'est bon tout marche nickel, SFML2 est compilée et plus d'erreurs de libstdc++-6.dll ;)


Pour l'emplacement compilateur, faut savoir que rien n'est installé au boulot, j'ai tout sur clé USB donc je ne pouvais pas lui dire de prendre nativement sur le système j'ai donc remplis les trois cases : gcc, g++ et fortran comme demandé, mais il avait pas demandé pour make et j'ai pas réagit de suite ;)


Je te rappel, rien installer par morceaux, j'utilise la version mingw fournie de codeblocks afin d'éviter cela, même si j'ai du séparé mingw de codeblocks sur ma clé USB (car comme je pouvais pas faire une vrai installation de codeblocks, j'utilise le programme cameyo qui crée une sorte de launcher, j'ai du mettre mingw à part du coup car rassemblé ça ne fonctionnait pas).


Bref tout est corrigé, plus de soucis. Ce n'est pas comme si de la maison j'avais pas du compiler (avec CMake) SFML2 sous Linux (les dépôts Ubuntu fournissent encore la 1.6 hélas).

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #3 le: Mai 06, 2013, 11:50:37 am »
Citer
en effet tu as compilé en 4.7 et je suis en 4.7.1 avec la dernière version de codeblocks
Ca c'est pas un problème. S'il fallait une compilation différente pour chaque version mineur du compilo, on ne serait pas arrivés.

Les incompatibilités, pour gcc sous Windows, sont :
- gcc < 4.7 vs gcc >= 4.7
- modèle d'exceptions DW2 vs SJLJ
- modèle de threading Posix vs Win32
- C++11 activé vs C++11 pas activé (?)

A mon avis tu as juste téléchargé la mauvaise archive. Normalement, parmi les 3 variantes que je supporte, il y en a toujours une qui va bien. Si tu utilises Code::Blocks 12.??, il faut normalement l'archive "GCC TDM (SJLJ)".

Citer
Pour l'emplacement compilateur, faut savoir que rien n'est installé au boulot, j'ai tout sur clé USB donc je ne pouvais pas lui dire de prendre nativement sur le système j'ai donc remplis les trois cases : gcc, g++ et fortran comme demandé, mais il avait pas demandé pour make et j'ai pas réagit de suite
C'est pas comme ça qu'il faut faire. Il faut juste ajouter le chemin vers ton compilo dans la variable d'environnement PATH, et ensuite CMake détecte automatiquement tout ce dont il a besoin comme un grand.
C'est pourtant indiqué clairement dans le tutoriel... :'(
Laurent Gomila - SFML developer

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #4 le: Mai 06, 2013, 01:02:15 pm »
Ben j'ai au départ essayé celle pour DW2 puis SJLJ et les deux j'avais le soucis, ce qui n'est maintenant plus le cas après recompilation donc je me suis dit que le soucis devait venir de là. Je verrais ce soir à la maison sur la version de Codeblocks que j'ai (10.5 pas mis à jour encore ;) ) si j'ai aussi un problème ou non et je testerais en le mettant à jour pour voir.

Peut être que le problème était lié au fait que c'est sur clé USB va savoir ;)


Pour la path ben désolé j'avais pas vu lol, cela dit j'aurais été alors obligé de mettre le path puis le supprimer ensuite ou alors le mettre en console et démarrer cmake-gui en console. Bref je le saurais pour la prochaine fois, le fait est qu'au final tout fonctionne ;)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #5 le: Mai 06, 2013, 01:35:56 pm »
Citer
Peut être que le problème était lié au fait que c'est sur clé USB va savoir
Aucune chance, non :P

Citer
ou alors le mettre en console et démarrer cmake-gui en console
C'est le plus simple, et c'est ce qui est expliqué dans le tutoriel. Dès que tu commences à bosser avec plusieurs compilos différents (ou plusieurs versions du même compilo), ce genre de manip devient carrément obligatoire. Après, avec les bonnes magouilles ("Open console here..." dans le menu contextuel associé aux répertoires, scripts qui configurent tout ce qu'il faut pour un compilo donné) ça se fait en un clin d'oeil.
Laurent Gomila - SFML developer

germinolegrand

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : [SFML2] Compilation avec CMake
« Réponse #6 le: Mai 06, 2013, 03:29:43 pm »
Il y a une incompatibilité au niveau de l'ABI de g++4.7.1, réparée avec la 4.7.2, les trois versions 4.7.0, 4.7.1, et 4.7.2 sont donc incompatibles entre elles ce me semble.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #7 le: Mai 06, 2013, 03:38:20 pm »
A priori ça ne devrait pas poser de problème puisque le mode C++11 n'est pas activé par défaut.
Laurent Gomila - SFML developer

germinolegrand

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : [SFML2] Compilation avec CMake
« Réponse #8 le: Mai 06, 2013, 03:58:23 pm »
Je précise au cas où, je sais que quand les versions 4.7 successives sont arrivées j'ai dû recompiler entièrement ma chaîne de compile pour chaque version, puisque le moindre mélange provoquait des problèmes de link/dll. (avec C++11)

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #9 le: Mai 06, 2013, 07:03:50 pm »
En tout cas à la maison avec la version que tu donnes sur le site, j'ai pu compilé alors que j'ai gcc 4.4.1 (ou alors j'ai des restes de la RC à voir) et ce sans aucun problème.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #10 le: Mai 06, 2013, 07:14:16 pm »
La compilation fonctionnera toujours. Ca qui se passe avec une mauvaise version, c'est que ça plante.
Laurent Gomila - SFML developer

christophedlr

  • Full Member
  • ***
  • Messages: 151
    • Voir le profil
    • E-mail
Re : [SFML2] Compilation avec CMake
« Réponse #11 le: Mai 06, 2013, 07:24:08 pm »
Mais là ça ne plante pas, à moins que je me sois gouré et que j'ai toujours la version RC (qui alors correspondrait à ma version GCC et pas la version présente sur le site).