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_image 2.0.2 undefined IMG_Init [SDL 2.0]


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Par défaut SDL_image 2.0.2 undefined IMG_Init
    Bonjour j'essaye depuis quelques jours d'intégrer la SDL_image 2.0.2 sur code blocks mais sans jamais y arriver, j'ai écumer pas mal de forums, tutoriels et vidéos. Je commence lentement a devenir fou....

    le linkage semble toujours raté:

    j'ai bien mis le /bin, le /include et le /lib dans les dossiers correspondant de ma SDL2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "undefined reference to 'IMG_Init' "
    Dans le build options ==> linker settings j'ai bien mis:
    • libSDL2_image.dll.a
    • libSDL2_image.a


    Puis dans mon Compiler settings ==> Search directories:
    • Pour le compiler :
      1. C:\Program Files (x86)\CodeBlocks\MinGW\lib
      2. C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\lib

    • pour le linker:
      1. C:\Program Files (x86)\CodeBlocks\MinGW\include
      2. C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\include


    Les dossiers/fichiers de SDL_images sont dans le dossier SDL2-2.0.7\x86_64-w64-mingw32 donc normalement je n'ai pas a les relinker manuellement.

    Si ça peut aider voici mon code:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #include <iostream>
     
    #include <SDL2/SDL.h>
     
    #include <SDL2/SDL_image.h>
     
    int main(int argc, char **argv)
    {
        if (SDL_Init(SDL_INIT_VIDEO) != 0 )
        {
            std::cout << SDL_GetError() << std::endl;
            return -1;
        }
            /* Création de la fenêtre */
     
        IMG_Init(IMG_INIT_JPG);
        SDL_Event evenements;
        SDL_Window* maFenetre(0);
        bool finFenetre (false);
        SDL_Surface* image = IMG_Load("titile.JPG");
     
        maFenetre = SDL_CreateWindow("Ma premiere application SDL2",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,800,600,SDL_WINDOW_SHOWN);
     
        if( !maFenetre )
        {
            std::cout << SDL_GetError() << std::endl;
            SDL_DestroyWindow(maFenetre);
            SDL_Quit();
     
     
        }
     
        while (!finFenetre)
        {
            SDL_WaitEvent(&evenements);
            if(evenements.window.event == SDL_WINDOWEVENT_CLOSE)
            finFenetre = true;
        }
     
        IMG_Quit();
        SDL_DestroyWindow(maFenetre);
        SDL_Quit();
     
        return 0;
     
    }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    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 151
    Billets dans le blog
    4
    Par défaut
    Salut,
    Citation Envoyé par Jarmen kell Voir le message
    Dans le build options ==> linker settings j'ai bien mis:
    • libSDL2_image.dll.a
    • libSDL2_image.a
    Je suis pas sur que lier la dll et la lib static soit une bonne chose à faire.
    Aussi, normalement l'option du linker devrait ressembler à -lSDL2_image ou un truc du genre
    Je suppose que SDL2 est déjà correctement installée, tu devrais avoir quasiment qu'à copier/coller en ajoutant _image dans les différents settings.
    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.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Par défaut
    J'ai tout remis dans le build options du projets ==> linker settings ==> link librairies, comme ceci:

    • C:\Program Files (x86)\CodeBlocks\MinGW\lib\libmingw32.a
    • C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\lib\libSDL2main.a
    • C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\lib\libSDL2.a
    • C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\lib\libSDL2.dll.a
    • C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\lib\libSDL2_image.a
    • C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\lib\libSDL2_image.dll.a


    et dans le Others linker options:

    • -lmingw32
    • -lSDL2main
    • -lSDL2
    • -lSDL2_image


    mais l'erreur persiste et reste la même, surtout que l'autocompletion marche, code block me suggère les fonctions de image.h. Je ne comprend pas comment ça peut marcher et pas marcher comme ça

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    C'est un souci qui arrive très souvent apparemment et la solution la plus approprié est celle ci : https://jeux.developpez.com/telechar...ur-Code-Blocks

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Par défaut
    sa viendrait de code blocks qui déconne? il vaudrait mieux utiliser visual c++? le problème avec le template c'est que l'on ne peut pas prendre les versions que l'ont veut et modifier les choses comme l'on veut, même si c'est quand même une solution prêt a l'emploi (merci pour sa ).

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    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 127
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Vous pouvez toujours prendre le template et remplacer les .h par ceux de la nouvelle version et de même avec les .lib et les DLL.
    Toutefois, je pense que vous allez retomber sur le même problème qu'à l'initial. Cela voudrait donc dire que vous n'avez pas pris les bons fichiers (vous avez pris les x64). En effet, il faut prendre les .lib dans le dossier x86 (sans le 64 désignant le 64 bits), car Code::Blocks vient avec un compilateur 32bits (et que le choix des libs dépend du compilateur et non du système).
    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.

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

Discussions similaires

  1. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  2. [SDL_Image] Img_Load : segmentation fault ....
    Par Mathieu.J dans le forum OpenGL
    Réponses: 6
    Dernier message: 19/10/2004, 23h52
  3. undefined reference to `xmlParseFile'
    Par Clemaster dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 25/06/2004, 20h38
  4. g++ : undefined reference to ...
    Par le_barbu dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 14/05/2004, 07h23
  5. [HQL]QueryException : undefined alias
    Par brice.antoine dans le forum Hibernate
    Réponses: 5
    Dernier message: 31/03/2004, 18h51

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