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

Auteur Sujet: Erreur pour build sfml 2.1 + sfgui ( cmake )  (Lu 2571 fois)

0 Membres et 1 Invité sur ce sujet

GG_A_SsaSsIbs

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Erreur pour build sfml 2.1 + sfgui ( cmake )
« le: Février 13, 2014, 08:08:34 pm »
Bonsoir,

Je souhaiterais pouvoir tester la lib sfgui. Je fais donc un montage avec Cmake comme l'explique le site en liant sfgui à sfml et glew.

Lors de la configuration du montage, je tombe sur cette erreur :

CMake Error at SFML-2.1/cmake/Modules/FindSFML.cmake:199 (message):
  Could NOT find SFML (missing: SFML_GRAPHICS_LIBRARY SFML_WINDOW_LIBRARY
  SFML_SYSTEM_LIBRARY)

Je m'empresse donc de modifier le CmakeLists.txt de sfgui pour y ajouter :

set( GLEW_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/glew-1.10.0/include" )
set( GLEW_LIBRARY "${PROJECT_SOURCE_DIR}/glew-1.10.0/lib" )
find_package( GLEW REQUIRED )
set( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/SFML-2.1/cmake/Modules" )
set( SFML_ROOT "${PROJECT_SOURCE_DIR}/SFML-2.1" )
find_package( SFML 2 REQUIRED COMPONENTS graphics window system )

J'ai même essayé dans le set SFML_ROOT de mettre le lien absolue en partant de C:\etc...... mais aucun changement.

Je me rends donc dans le findSFML.cmake voir ce qu'il en est. Les commentaires disent de spécifier quel module nous voulons utiliser ( system, window etc .... ).

Ce qui est déjà fournies dans le CmakeFiles de sfgui :

find_package( SFML 2 REQUIRED COMPONENTS graphics window system )
Je me tourne vers vous du coup pour comprendre ce que j'ai zappé dans le processus ou du moins avoir une piste. :)

Merci par avance pour toute aide apportée.

Assa
« Modifié: Février 13, 2014, 11:04:31 pm par Laurent »

bcvz

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
Re : Erreur pour build sfml 2.1 + sfgui ( cmake )
« Réponse #1 le: Février 14, 2014, 12:28:32 pm »
-SFGUI 2.1 ne fonctionne qu'avec la version github de SFML ( et pas avec SFML 2.1), que tu peux télécharger ici:
https://github.com/SFML/SFML

-Tu dois installer SFML Github et SFGUI avec un compileur récent : soit GCC 4.8 (et pas 4.7 !!) soit VS2013 (pas vs2012)

-Donc installe d'abord SFML git, et quand ça fonctionne tu installes SFGUI 2.1 sans rien changer dans les fichiers, pour GLEW tu peux directement linker au glew qui se trouve dans SFML/extlibs

Attention pour le montage de SFGUI / ! \
-Tu dois simplement mettre SFML_ROOT dans un fichier qui contient les libs d'SFML ainsi que les fichiers include
-Linker GLEW au glew qui se trouve dans SFML/extlibs
-CMAKE_MODULE_PATH la où se trouve findSFML (SFML/Cmake/modules)

si les variables n'existent pas tu les CRÉE
si tu veux linker SFGUI en static, dans les config CMAKE SFML (SFML_GRAPHICS_LIBRARY ... etc) tu dois lier tout les libs vers les libs STATIC d'SFML, c'est à dire les fichiers avec les -s. + tu coches GLEW_STATIC si il est pas coché ( et bien sur tu décoches SFGUI_BUILD_SHARED_LIBS )


« Modifié: Février 14, 2014, 12:39:04 pm par bcvz »

GG_A_SsaSsIbs

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Erreur pour build sfml 2.1 + sfgui ( cmake )
« Réponse #2 le: Février 14, 2014, 01:56:07 pm »
Bonjour et merci pour cette première réponse.

OKi, moi j'ai téléchargé les sources de la version 2.1 mais enfaîte c'est les sources de la version github qu'il faut.

Je vais testé ça en faisant bien sur un retour sur la situation.

Juste à titre informatif et en résumant, elles ont quoi de différente les sources github et les sources de la version 2.1 ?

Merci encore.

bcvz

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
Re : Erreur pour build sfml 2.1 + sfgui ( cmake )
« Réponse #3 le: Février 14, 2014, 03:39:22 pm »
Je ne connais pas vraiment les différences, je crois qu'il a un systeme de linkage un peu plus différent.
Et il est plus adapté pour les nouveaux compilateurs C++11 je crois.
Ce que je sais c'est que SFGUI 2.1 ne marche qu'avec la version github actuellement.

Au fait pour le linkage static faut aussi ajouter la variable SFML_STATIC_LIBRARIES et le cocher.
« Modifié: Février 14, 2014, 03:43:05 pm par bcvz »

GG_A_SsaSsIbs

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Erreur pour build sfml 2.1 + sfgui ( cmake )
« Réponse #4 le: Février 14, 2014, 10:40:41 pm »
Bon et bien impeccable sa marche et j'ai pu compiler ma lib sans problème.

Merci de ton aide bcvz. ;)

Pour faire un résumé clair afin que sa puisse servir à un autre, pour utiliser sfgui, il faut :

Télécharger les sources : http://sfgui.sfml-dev.de/download/
Faire très attention à la version que vous prenez par exemple à l'heure ou j'écris ce post, il y a :

- Release 0.2.1 (SFML Git)
- Release 0.2.0 (SFML 2.1)

Et sa était la mon erreur, j'ai parcouru très vite la page de téléchargement du site SFGUI alors qu'elle précise bien que si vous prenez la version "release 0.2.1" des sources, il vous faut les sources de SFML Git, sinon pour la 0.2.0, vous pouvez utiliser SFML 2.1

J'ai rencontré par la suite d'autre problème mais ils sont facile à résoudre. Il suffit de bien lire les messages d'erreurs dans CMake ou dans le BuildLog si cela se passe à la compilation. ( Hésitez pas à reprendre ce sujet au cas ou vous buttiez ).

Un bon conseil, relisez bien ce qu'a mit bcvz ici, c'est crucial pour réussir :

Citer
Attention pour le montage de SFGUI / ! \
-Tu dois simplement mettre SFML_ROOT dans un fichier qui contient les libs d'SFML ainsi que les fichiers include
-Linker GLEW au glew qui se trouve dans SFML/extlibs
-CMAKE_MODULE_PATH la où se trouve findSFML (SFML/Cmake/modules)

Encore merci bcvz.
« Modifié: Février 14, 2014, 10:46:29 pm par GG_A_SsaSsIbs »