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

Bibliothèques Discussion :

j'ai pourtant bien installé SDL2


Sujet :

Bibliothèques

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 356
    Points : 418
    Points
    418
    Billets dans le blog
    15
    Par défaut j'ai pourtant bien installé SDL2
    Bonjour,

    j'ai installé SDL2 sur debian:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ sudo apt install libsdl2-dev libsdl2-2.0-0
    mais j'ai reference indefinie pour toutes les fonctions SDL2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    g++ -lSDL2 -lSDL2main *cpp
    /usr/bin/ld*: /tmp/ccnas9p7.o*: dans la fonction «*main*»*:
    main.cpp:(.text+0x15)*: référence indéfinie vers «*SDL_Init*»
    /usr/bin/ld*: main.cpp:(.text+0x21)*: référence indéfinie vers «*SDL_GetError*»
    /usr/bin/ld*: main.cpp:(.text+0x3d)*: référence indéfinie vers «*SDL_LogError*»
    /usr/bin/ld*: main.cpp:(.text+0x79)*: référence indéfinie vers «*SDL_CreateWindowAndRenderer*»
    /usr/bin/ld*: main.cpp:(.text+0x85)*: référence indéfinie vers «*SDL_GetError*»
    /usr/bin/ld*: main.cpp:(.text+0xa1)*: référence indéfinie vers «*SDL_LogError*»
    /usr/bin/ld*: main.cpp:(.text+0xa6)*: référence indéfinie vers «*SDL_Quit*»
    /usr/bin/ld*: main.cpp:(.text+0xce)*: référence indéfinie vers «*SDL_PollEvent*»
    /usr/bin/ld*: main.cpp:(.text+0xe9)*: référence indéfinie vers «*SDL_DestroyRenderer*»
    /usr/bin/ld*: main.cpp:(.text+0xf5)*: référence indéfinie vers «*SDL_DestroyWindow*»
    /usr/bin/ld*: main.cpp:(.text+0xfa)*: référence indéfinie vers «*SDL_Quit*»
    collect2: error: ld returned 1 exit status
    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
    27
    28
    29
    30
    31
    //main.cpp
    #include <SDL2/SDL.h>
    #include "classesEtConstantes.hpp"
     
    int main(int argc,char *argv[]){
      if (SDL_Init(SDL_INIT_VIDEO) < 0){
            SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "[DEBUG] > %s", SDL_GetError());
            return -1;
        }
        SDL_Window* pWindow{ nullptr };     
        SDL_Renderer* pRenderer{ nullptr };
        if (SDL_CreateWindowAndRenderer(800, 600, SDL_WINDOW_SHOWN, &pWindow, &pRenderer) < 0){
            SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "[DEBUG] > %s", SDL_GetError());        
            SDL_Quit(); 
            return -1;
        }
        SDL_Event events;
        bool isOpen{ true };
        while (isOpen){
            while (SDL_PollEvent(&events)){
                switch (events.type){
                    case SDL_QUIT:
                        isOpen = false;
                        break;
                }
            }
        }
        SDL_DestroyRenderer(pRenderer);SDL_DestroyWindow(pWindow);
        SDL_Quit();
        return 0;
    }
    quelqu'un a une idée?

  2. #2
    Membre chevronné Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 522
    Points : 1 889
    Points
    1 889
    Par défaut
    L'éditeur de lien ne trouve pas la SDL2, sans doute parque le fichier objet ne fournit pas les bons emplacements. La SDL possède un fichier de configuration sdl2-config qui donne la bonne configuration au compilateur.
    Du coup, j'utiliserai plutôt cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -o executable main.cpp ...  $(sdl2-config --cflags --libs)
    Rien ne t'empêche d'utiliser d'autre option du compilateur tel que -Wall -Wextra

    Ou alors Cmake, si tu as plusieurs fichiers ou de nombreuses options.
    "Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
    Site Web : https://www.admin-libre.fr

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 356
    Points : 418
    Points
    418
    Billets dans le blog
    15
    Par défaut
    voila, ça marche. Il fallait metre -lSD2 -lSDL2main après le fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ g++ -o programme *cpp -lSDL2 -lSDL2main

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

Discussions similaires

  1. Le terminal ne reconnait pas GCC pourtant il est bien installé Ubuntu 18.04
    Par Midou45 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 28/05/2018, 00h43
  2. Réponses: 9
    Dernier message: 26/05/2017, 12h25
  3. Réponses: 8
    Dernier message: 09/04/2009, 19h13
  4. Comment bien installer GTK+ avec la "bonne version"?
    Par 0v3rb1t dans le forum GTK+ avec C & C++
    Réponses: 13
    Dernier message: 16/11/2007, 23h43
  5. Réponses: 1
    Dernier message: 08/08/2007, 18h07

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