IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

[CMake] création d'un projet SFML


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 171
    Par défaut [CMake] création d'un projet SFML
    Bonjour,

    Je cherche à créer un projet avec la SFML avec CMake.
    J'ai compilé la SFML en fonction de mon compilateur (vc11).
    J'ai créé mon fichier CMakeLists.txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
     
    PROJECT(BasePropre)
     
    SET(EXE_NAME "test")
     
    SET(EXECUTABLE_OUTPUT bin/${CMAKE_BUILD_TYPE})
     
    FILE (GLOB_RECURSE sourceFiles src/*)
     
    ADD_EXECUTABLE(${EXE_NAME} ${sourceFiles})
     
    SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})
    FIND_PACKAGE(SFML 2 REQUIRED system window graphics network audio)
    if(SFML_FOUND)
    	INCLUDE_DIRECTORIES(${SFML_INCLUDE_DIR})
    	TARGET_LINK_LIBRARIES(${EXE_NAME} ${SFML_LIBRARIES})
    endif()
     
    FIND_PACKAGE(OpenGL REQUIRED)
    INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
    if(OPENGL_FOUND)
    	TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPENGL_LIBRARIES})
    endif()
    Le problème que j'ai est que CMake ne trouve pas le SFML_DIR. J'essaye donc de lui passer le chemin du dossier de la SFML compilé mais l'erreur persiste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CMake Error at CMakeLists.txt:14 (FIND_PACKAGE):
      By not providing "FindSFML.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "SFML", but
      CMake did not find one.
     
      Could not find a package configuration file provided by "SFML" (requested
      version 2) with any of the following names:
     
        SFMLConfig.cmake
        sfml-config.cmake
     
      Add the installation prefix of "SFML" to CMAKE_PREFIX_PATH or set
      "SFML_DIR" to a directory containing one of the above files.  If "SFML"
      provides a separate development package or SDK, be sure it has been
      installed.
    Quel est le dossier à passer en paramètre a SFML_DIR ?

    Cordialement,
    Robin

  2. #2
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Bonjour

    Tu peux peut-être t'inspirer de ce projet qui utilise la SFML 2.1 avec CMake.
    https://gitorious.org/new_sfml_project/new_sfml_project

    En ajoutant le bon répertoire (l'équivalent de /usr/ ou /usr/local/) dans la variable CMAKE_PREFIX_PATH.

  3. #3
    Membre confirmé Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 171
    Par défaut
    Merci pour cette réponse.
    En forçant la valeur du FindSFML on arrive à créer un projet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
     
    PROJECT(BasePropre)
     
    SET(EXE_NAME "BasePropre")
     
    SET(EXECUTABLE_OUTPUT bin/${CMAKE_BUILD_TYPE})
     
    FILE (GLOB_RECURSE sourceFiles src/*)
     
    ADD_EXECUTABLE(${EXE_NAME} ${sourceFiles})
     
    FIND_FILE(SFML_CMAKE_DIR "cmake/Modules/FindSFML.cmake")
    if(SFML_CMAKE_DIR)
    	string(REPLACE "FindSFML.cmake" "" SFML_CMAKE_DIR ${SFML_CMAKE_DIR})
    	set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${SFML_CMAKE_DIR}")
    endif()
    FIND_PACKAGE(SFML COMPONENTS system window graphics audio REQUIRED)
    INCLUDE_DIRECTORIES(${SFML_INCLUDE_DIR})
    TARGET_LINK_LIBRARIES(${EXE_NAME} ${SFML_LIBRARIES})
     
    FIND_PACKAGE(OpenGL REQUIRED)
    INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
    if(OPENGL_FOUND)
    	TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPENGL_LIBRARIES})
    endif()
    Problème résolu

  4. #4
    Membre confirmé Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 171
    Par défaut
    Re bonjour,

    J'ai un autre problème avec CMake.
    Impossible de linker GLEW.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FIND_PACKAGE(GLEW REQUIRED)
    INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR})
    if(GLEW_FOUND)
    	TARGET_LINK_LIBRARIES(${EXE_NAME} ${GLEW_LIBRARIES})
    endif()
    Nom : Sans titre.png
Affichages : 1418
Taille : 12,7 Ko

    Je ne comprends pas ce que j'ai pu oublier puisque ce code ci-dessous me permet de linker OpenGL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FIND_PACKAGE(OpenGL REQUIRED)
    INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
    if(OPENGL_FOUND)
    	TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPENGL_LIBRARIES})
    endif()
    Cordialement,
    Robin

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Quel est le soucis, il trouve bien la .lib ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Je vois pas où tu déclares GLEW_LIBRARIES et GLEW_INCLUDE_DIR
    Comprends-tu ce que tu écris ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre confirmé Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 171
    Par défaut
    @LittleWhite : C'est l'include qu'il ne trouve pas. Sur l'image on peut voir que l'include est souligné en rouge. La lib je pense qu'elle est bien linké.

    @Bousk : Je débute avec CMake. Donc je ne pense savoir ce qu'il se passe mais je n'en suis pas sur (la preuve que j'ai tore puisque que ça ne marche pas ^^)
    J'ai rajouté deux lignes de plus mais ça ne change rien.
    Les variable GLEW_LIBRARIES et GLEW_INCLUDE_DIR sont remplis via le logiciel CMake (cf image).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    FIND_PACKAGE(GLEW REQUIRED)
    INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR})
    LINK_LIBRARIES(${GLEW_LIBRARIES})
    ADD_DEFINITIONS(${GLEW_DEFINITIONS})
    if(GLEW_FOUND)
    	TARGET_LINK_LIBRARIES(${EXE_NAME} ${GLEW_LIBRARIES})
    endif()

  8. #8
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Je vois pas où tu déclares GLEW_LIBRARIES et GLEW_INCLUDE_DIR
    Comprends-tu ce que tu écris ?
    C'est fait par FIND_PACKAGE(GLEW REQUIRED) ...

    Citation Envoyé par robinsondesbois Voir le message
    Les variable GLEW_LIBRARIES et GLEW_INCLUDE_DIR sont remplis via le logiciel CMake (cf image).
    ... sauf que la variable c'est GLEW_INCLUDE_PATH et pas GLEW_INCLUDE_DIR.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/01/2006, 07h37
  2. Réponses: 3
    Dernier message: 12/01/2006, 09h16
  3. [Info]Création d'un projet sous eclipse
    Par new_wave dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 08/01/2006, 22h06
  4. [Lomboz]Création d'un projet J2EE
    Par woodwai dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 03/08/2004, 14h53
  5. Eclipse - problème de création d'un projet Tomcat
    Par firado dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo