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

SDL Discussion :

sdl et cmake


Sujet :

SDL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut sdl et cmake
    Bonjour
    J'ai un petit soucis pour compiler une application toute simple avec cmake
    J'y arrive en utilisant cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -Wall -W -pedantic -ansi `sdl-config --cflags --libs` essai.cpp -o essai
    Quand je passe à cmake, je mets ça dans mon CMakeLists.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROJECT(essai)
    FIND_PACKAGE(SDL REQUIRED)
    INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
    ADD_EXECUTABLE(essai essai.cpp)
    je fais un cmake . et ensuite quand je lance make voici l'erreur de sortie :
    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
    make
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/julien/C++/SDL
    Linking CXX executable essai
    CMakeFiles/essai.dir/sdl.o: In function `main':
    essai.cpp:(.text+0x89): undefined reference to `SDL_Init'
    essai.cpp:(.text+0x97): undefined reference to `SDL_GetError'
    essai.cpp:(.text+0xe9): undefined reference to `SDL_WM_SetCaption'
    essai.cpp:(.text+0x102): undefined reference to `SDL_SetVideoMode'
    essai.cpp:(.text+0x14f): undefined reference to `SDL_PollEvent'
    essai.cpp:(.text+0x163): undefined reference to `SDL_Quit'
    collect2: ld a retourné 1 code d'état d'exécution
    make[2]: *** [essai] Erreur 1
    make[1]: *** [CMakeFiles/essai.dir/all] Erreur 2
    make: *** [all] Erreur 2


    Visiblement il me trouve la lib mais il ne l'a link pas au programme. J'ai bien cherché sur le site off de cmake avec la doc mais ... je ne trouve pas comment faire

  2. #2
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Il te trouve les répertoires de la SDL mais il n'ajoute pas le -lSDL ou le `sdl-config --libs` lors de la création de l'exécutable.

    Par contre, je ne connais pas assez cmake pour lui dire d'ajouter l'un ou l'autre.
    Jc

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par fearyourself Voir le message
    Il te trouve les répertoires de la SDL mais il n'ajoute pas le -lSDL ou le `sdl-config --libs` lors de la création de l'exécutable.

    Par contre, je ne connais pas assez cmake pour lui dire d'ajouter l'un ou l'autre.
    Jc
    C'est pareil pour moi

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut
    Bon j'ai avancé sur la chose et j'ai trouvé une solution qui fonctionne et une autre qui donne un avertissement. Pour celle qui fonctionne voici le code complet du fichier CMakeLists.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PROJECT(sdlju)
    FIND_PACKAGE(SDL REQUIRED)
    INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
    SET(CMAKE_CXX_FLAGS "-Wall -W -pedantic -ansi `sdl-config --cflags --libs`")
    ADD_EXECUTABLE(sdlju Main.cpp)
    Pour la seconde voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PROJECT(sdlju)
    FIND_PACKAGE(SDL REQUIRED)
    INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
    SET(CMAKE_CXX_FLAGS "-Wall -W -pedantic -ansi -lSDL")
    ADD_EXECUTABLE(sdlju Main.cpp)
    et voici le warning que j'ai à la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    make
    Scanning dependencies of target sdlju
    [100%] Building CXX object CMakeFiles/sdlju.dir/Main.o
    c++: -lSDL: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
    Linking CXX executable sdlju
    [100%] Built target sdlju
    Si j'exécute ce que je viens de compiler avec la solution 2 cela fonctionne cependant le warning me gène donc si quelqu'un a la solution, ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut
    Rectification, que ça soit la première où la seconde solution, au premier make il me génère la même erreur dans un cas comme dans l'autre
    Ensuite si je relance make, il ne me met pas les erreurs

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par ChipsterJulien Voir le message
    Rectification, que ça soit la première où la seconde solution, au premier make il me génère la même erreur dans un cas comme dans l'autre
    Ensuite si je relance make, il ne me met pas les erreurs
    Ce n'est pas vraiment une erreur puisqu'il dit simplement que l'édition de lien que tu demandes n'est pas nécessaire puisque le compilateur n'est pas encore à ce stade de la compilation.

    Il faudrait modifier les options pour ne pas mettre cette option pendant toute la compilation mais seulement à la fin.

    Jc

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par fearyourself Voir le message
    Ce n'est pas vraiment une erreur puisqu'il dit simplement que l'édition de lien que tu demandes n'est pas nécessaire puisque le compilateur n'est pas encore à ce stade de la compilation.

    Il faudrait modifier les options pour ne pas mettre cette option pendant toute la compilation mais seulement à la fin.

    Jc
    Ok, mais comment faire car je ne le sais pas

  8. #8
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par ChipsterJulien Voir le message
    Ok, mais comment faire car je ne le sais pas
    Ok j'ai installé Cmake sur mon ordi et j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROJECT(sdlju)
    FIND_PACKAGE(SDL REQUIRED)
    INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
    SET(CMAKE_CXX_FLAGS "-Wall -W -pedantic -ansi `sdl-config --cflags`")
    ADD_EXECUTABLE(sdlju Main.cpp)
    TARGET_LINK_LIBRARIES(sdlju `sdl-config --libs`)
    Je n'ai plus ton warning...

    Jc

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut
    Excellent !
    Merci beaucoup

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/04/2013, 23h44
  2. [SDL] manipulation d'image
    Par zdra dans le forum OpenGL
    Réponses: 4
    Dernier message: 28/02/2004, 16h56
  3. un plateau en SDL...
    Par maniaco_jazz dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 24/02/2004, 16h48
  4. [Debutant] Sdl & OpenGl link ne marche pas
    Par Riko dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/02/2004, 16h13
  5. [opengl et sdl]
    Par Gonath dans le forum OpenGL
    Réponses: 6
    Dernier message: 08/12/2003, 09h49

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