Partage
  • Partager sur Facebook
  • Partager sur Twitter

Installation de la sdl_image

undefined reference to 'IMG_LOAD'

    14 février 2021 à 15:01:16

    Bonjour cher camarade,

    voici déjà plusieurs mois que je suis sur un problème qui m'empêche d'évoluer avec le cours.

    j'utilise codeblock et j'ai bien suivi les étapes d'installation à savoir :

    -la copie du header(SDL_image.h) dans le répertoire C:\Program Files (x86)\CodeBlocks\SDL-1.2.15\include.

    -copie du fichier SDL_image.lib (x86) dans le répertoire C:\Program Files (x86)\CodeBlocks\SDL-1.2.15\lib.

    -copier tous les fichier .dll dans le dossier où se trouve mon projet

    - et enfin linker dans code block.

    Mais élas je tombe toujours sur le même problème. Aucun forum jusqu'à présent n'a reussi à m'apporter une solution, j'ai déjà perdu trop de temps ,please aidez-moi....

    • Partager sur Facebook
    • Partager sur Twitter
      14 février 2021 à 15:14:11

      FlorianNtongabe a écrit:

      -copie du fichier SDL_image.lib (x86) ...

      Tu utilises quel compilateur ?

      • Partager sur Facebook
      • Partager sur Twitter
        15 février 2021 à 1:26:53

        Bonsoir Rouloude 

        j'utilise GNU GCC compiler. 

        • Partager sur Facebook
        • Partager sur Twitter
          15 février 2021 à 10:08:33

          Et bien alors, ton fichier devrait se nommer SDL_image.a 

          L’extension .lib est utilisé entre autre avec Visual C++. Tu as du te tromper de binaires quand tu as téléchargé la lib.

          • Partager sur Facebook
          • Partager sur Twitter
            15 février 2021 à 12:50:15

            D'accord! je suis d'accord avec toi. Mais justement dans le tuto de mateo21 il nous a été fait comprendre qu'exceptionnellement dans ce cas, le fichier SDL_image.lib marcherai et cela même avec le compilateur mingw.
            • Partager sur Facebook
            • Partager sur Twitter
              15 février 2021 à 13:03:49

              Étonnant ? Tu peux me monter où ils écrivent ça ?
              • Partager sur Facebook
              • Partager sur Twitter
                15 février 2021 à 13:45:51

                Effectivement, ils le disent. Je n'utilise pas SDL, Peut-être un utilisateur pourra t'en dire plus !

                • Partager sur Facebook
                • Partager sur Twitter
                  15 février 2021 à 14:29:18

                  Tu suis quelle documentation ? Les bibliothèque 1.x de SDL sont obsolète depuis plus de 8 ans.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  git is great because Linus did it, mercurial is better because he didn't.

                    15 février 2021 à 22:23:52

                    Markand peut-être bien qu'elles sont obsolètes, mais je voudrais au moins y parvenir pour mieux comprendre les rouages, avoir les bonnes bases et pouvoir naturellement m'en sortir dans la versions actuelle.....pouvez-vous m'aider à résoudre ce problème svp je suis bloqué déjà depuis plusieurs semaines please!!
                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 février 2021 à 8:52:56

                      Tu peux avoir de bonnes bases en suivant un cours à jour tout simplement. Je ne vois pas l'intérêt de commencer sur une version qui est déjà obsolète. Il n'y a pas qu'openclassrooms dans la vie ! De toute façon les cours du C et C++ sur ce site sont à proscrire et nous mettons la pression pour qu'ils soient supprimés. Sauf erreur de ma part, en auto école on ne t'apprend plus à rouler sur des Citroën AX.

                      -
                      Edité par markand 16 février 2021 à 8:54:27

                      • Partager sur Facebook
                      • Partager sur Twitter

                      git is great because Linus did it, mercurial is better because he didn't.

                        16 février 2021 à 15:12:30

                        Petite précision: il n'y a aucune restriction à générer ou consommer des librairies statiques avec une extension .a/.lib avec MinGW, ou .dll.a/.lib pour la librairie d'import.

                        -
                        Edité par SpaceIn 16 février 2021 à 15:15:42

                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 février 2021 à 12:03:28

                          D'accord markand, ce cours je l'ai commencé, je voudrais bien le poursuivre et le terminer. J'ai consulté pas mal de forum et vu pas mal de tuto mais aucun d'eux n'a su solutionner mon problème. Je pense avoir respecter toutes les étapes mais cela ne fonctionne toujours pas!

                          Quelqu'un pourrait-il m'apporter une solution claire svp??

                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 février 2021 à 13:22:46

                            FlorianNtongabe a écrit:

                            [...]
                            Quelqu'un pourrait-il m'apporter une solution claire svp??


                            Elle t'a été donnée : n'utilise pas une version du produit obsolète depuis 8 ans ⇒ plus de support  = la merde quand les autres outils et/ou l'environnement  évoluent.

                            La version supportée actuelle est la SDL2.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 février 2021 à 15:51:15

                              Et bien reste dans ton environnement obsolète et perds du temps à apprendre quelque chose qui n'est plus supporté upstream ni valable. Au final tu apprends quelque chose que tu n'utiliseras même plus.

                              C'est incroyable cet entêtement à vouloir apprendre quelque chose de déprécié et totalement obsolète juste parce qu'il y a un cours « en français, facile à lire ».

                              Si tu ne trouves pas de solutions, c'est parce que plus personne n'utilise SDL 1.2. Donc les articles finissent par disparaitre et le référencement aussi. Essaye de trouver de la documentation sur Lua 5.0 ou Gtk 1.0 ou Qt 3, c'est pareil.

                              -
                              Edité par markand 17 février 2021 à 15:52:12

                              • Partager sur Facebook
                              • Partager sur Twitter

                              git is great because Linus did it, mercurial is better because he didn't.

                                17 février 2021 à 23:49:04

                                Salut, voici un tuto sur SDL2 en français si ça t'intéresse. Tu peux jeter un oeil ici également
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  18 février 2021 à 0:52:35

                                  Je ne vois pas trop le rapport avec la version de SDL. S'il n'arrive pas à faire ses liens, ce n'est pas de la faute de la lib...
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Bonhomme !! | Jeu de plateforme : Prototype.

                                    22 février 2021 à 0:00:30

                                    ........ok

                                    En gros je devrais juste abandonner ce que j'ai commencé....d'accord, merci pour vos réponses tout de même!

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      22 février 2021 à 0:16:25

                                      Bizarre que, alors que les autres lib sont en .a, on te disent que "exceptionnellement il faut lier le .lib..."

                                      Bref, je connais bien SDL, mais je n'ai jamais suivi le cours de ce site, ni utilisé code::blocks.

                                      Quoiqu'il en soit, au pire si tu veux ne pas être frustré et finir ça avant d'aller vers du plus moderne, sache que SDL_image ne sert pas à grand chose : il charge des .png,.jpg ou autres alors que la fonction native SDL_LoadBMP ne prend que des BMP.

                                      Donc tu peux te passer de SDL_Image (et de IMG_Load) en remplaçant par SDL_LoadBMP. Bien sur il faudra d'abord convertir les images des exemples en BMP (ouvre les images proposées dans Paint, et resauve en BMP 24 bits)

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                        22 février 2021 à 7:35:24

                                        Mouais...

                                        Quand on commence à trimballer un gros paquet d'images, il est quand-même plus sympa de travailler avec des formats compressés, qui en plus savent gérer la transparence. Perso le png est mon format favoris. Alors je pourrais me creuser le crâne et utiliser moi-même libpng plutôt que passer par un intermédiaire, mais bon, flemme oblige.

                                        Et aussi, arrêtez de tacler la SDL1.x, c'est une ancienne version, pas une version inutile. Elle fonctionne sur du matos que ne peut pas faire la SDL2, et est encore à la base de nombreux émulateurs qui tournent sur du matos chinois pas cher sans carte graphique. Et vous ne savez pas sur quoi vont bosser les gens, il veut ptet développer un homebrew sur PS2.

                                        Sans compter que le textures ont fait disparaître une certaine souplesse de travail qui m'oblige presque à travailler avec des surfaces de toute façon. Donc, plus rapide, peut-être sauf quand il devient nécessaire de streamer les textures en permanence.

                                        Et enfin, arriver ou non à lier une lib n'a absolument rien à voir avec la version de ladite lib. S'il ne sait pas linker une lib, il n'y arriveras pas plus avec la SDL 3.

                                        Bonne continuation.

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Bonhomme !! | Jeu de plateforme : Prototype.

                                          22 février 2021 à 10:45:15

                                          drx a écrit:

                                          Mouais...

                                          Quand on commence à trimballer un gros paquet d'images, il est quand-même plus sympa de travailler avec des formats compressés, qui en plus savent gérer la transparence. Perso le png est mon format favoris. Alors je pourrais me creuser le crâne et utiliser moi-même libpng plutôt que passer par un intermédiaire, mais bon, flemme oblige.


                                          Ma suggestion de se passer de SDL_Image était, puisqu'il a un soucis pour l'installer, de pouvoir contourner le problème au moins dans un premier temps :)
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                            22 février 2021 à 11:31:02

                                            drx a écrit:

                                            Je ne vois pas trop le rapport avec la version de SDL. S'il n'arrive pas à faire ses liens, ce n'est pas de la faute de la lib...

                                            drx a écrit:

                                            Et enfin, arriver ou non à lier une lib n'a absolument rien à voir avec la version de ladite lib. S'il ne sait pas linker une lib, il n'y arriveras pas plus avec la SDL 3.

                                            Le plus simple alors, c'est peut-être d'expliquer comment lier une lib ? non ?



                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              22 février 2021 à 12:41:16

                                              je vous écoute dite moi comment linker une lib dans code block, afin que je vérifie avec ce qui a été fait svp?
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                22 février 2021 à 14:01:21

                                                Clic droit sur ton projet puis build options.

                                                Sélectionner à gauche le projet (pas Debug ou Release mais la racine).

                                                Dans l'onglet "Linker settings", cliquer sur "Add" et sélectionner le fichier "libSDL2_image.dll.a".

                                                Refaire la même opération pour le fichier "libSDL2_image.a"

                                                Dans l'onglet "Search directory" / compiler, donner le chemin vers les includes( "C:\...\include"), dans l'onglet "linker" le chemin vers les lib ("C:\..\lib").

                                                Dire oui quand il te demande s'il faut appliquer aux composantes (debug et release) et fin.

                                                à noter que pour la SDL2, le choix 32/64 bits ne dépend pas de ton pc mais tu compilateur que tu utilises. Ici, je suis tout en 32 bits, et bien entendu, même version pour la SDL que pour ses modules SDL_image, SDL_TTF etc...

                                                Bonne continuation.

                                                -
                                                Edité par drx 22 février 2021 à 14:04:14

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Bonhomme !! | Jeu de plateforme : Prototype.

                                                  22 février 2021 à 14:17:25

                                                  En ce qui me concerne, je partais du principe que tu avais correctement configuré l'édition des liens.

                                                  Si ce n'est pas les cas, voici un cours à ce sujet : Installer et configurer une bibliothèque dans un projet .

                                                  En ce qui concerne SDL_Image, je ne t'en dirais pas plus, je n'utilise pas cette lib. 

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    24 février 2021 à 14:39:18

                                                    Drx j'ai bien linker comme cela tout en respectant le choix 32/64 bits mais rien....

                                                    visiblement je vais devoir abandonner cette route....c'est dommage!

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      24 février 2021 à 16:15:15

                                                      question (peut-être) bête: tu as bien inclus le SDL_image.h dans ton code source ?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        24 février 2021 à 16:33:44

                                                        C'est un problème de link pas d'entête.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        git is great because Linus did it, mercurial is better because he didn't.

                                                          24 février 2021 à 16:53:29

                                                          Mais quelles erreurs as tu précisément? Donne le log des erreurs d'édition des liens si l'erreur est bien là.

                                                          Au passage je n'utilise pas SDL_image, mais j'imagine que cette lib dépend de SDL, donc si c'est le cas il faut bien lister SDL_image puis SDL dans la ligne de commande de l'éditeur de liens GNU (Visual Studio est plus relax concernant l'ordre).

                                                          -
                                                          Edité par SpaceIn 24 février 2021 à 16:54:04

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            5 janvier 2022 à 2:27:30

                                                            bonjour à tous . Tout d'abord je voudrais vous remercier pour votre assistance et aide et je viens ici maintenant pour vous apporter la solution à ce problème légendaire.

                                                            je voudrais déjà vous préciser que j'ai à la lettre les configurations de ce tuto et des differents liens envoyés par mes camarades dans ce forums. 

                                                            puisque ce tuto n'étais à jour c'est à dire au moment où le tuto se réalisait la version SDL2 n'était pas encore disponible, alors ce que je faisais j'essayais d'avancer avec les deux versions en même temps(SDL et SDL2).

                                                            le problème selon moi qui se posait était un problème de confit entre la librerie de la SDL et SDL2 puisque après avoir enlever cette dernière dans les linker comme par miracle...ca marchais.

                                                            bonne journée à tous

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Installation de la sdl_image

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown