Partage
  • Partager sur Facebook
  • Partager sur Twitter

Undefined reference to SDL_Init

    2 août 2023 à 12:54:38

    Bonjour, je cherche à créer une bibliothèque sur la sdl ( mes propres fonctions qui utilise la SDL mais pour faciliter mes programmes). Par conséquent, j'ai creer sur Code::Blocks une bibliothèque dynamique, mais lorsque j'utilise SDL_init, on me dis "undefined reference to SDL_Init".

    Pourtant j'ai inclus les .dll de la SDL dans mon projet et lorsque je fais un projet sdl, ca marche mais pas quand je fais un projet bibliothèque dynamique

    Les bibliothèques sont encore très flous pour moi donc je ne sais pas si c'est possible de realiser mon projet

    • Partager sur Facebook
    • Partager sur Twitter
      2 août 2023 à 17:17:09

      C'est probablement que tu n'as pas lié les bibliothèques de la SDL à ton projet. (Sous Code::Blocks, c'est dans Projet -> Build options... Onglet "Linker setting".

      Si tu as déjà fait des projets avec la SDL tu dois savoir somment on paramètre le liker pour lié les bibliothèques.

      La dll de la SDL, n'est pas utile pour la compilation mais seulement à l'exécution.

      • Partager sur Facebook
      • Partager sur Twitter
      ...
        2 août 2023 à 22:56:59

        Merci beaucoup ! En effet c'était bien la solution.

        Alors ça a déboucher sur un nouveau problème, lorsque j'utilise cette bibliothèque sur un autre projet ( pour la tester) j'obtiens le message suivant : point d'entré de procédure introuvable, comment résoudre ce problème ?

        Le problème c'est résolu en remettant mon fichier dll dans mon projet teste, cependant je dois "actualiser" dll a chaque modification, existe-t-il un moyen de teste ma bibliotèque en temps réel sans avoir besoin d'utiliser un autre projet?

        Deplus existe-il des cours pour faire des bibliothèque dynamique ou statique ?

        Merci pour vos futures retours

        -
        Edité par Jefkanochard 2 août 2023 à 23:59:05

        • Partager sur Facebook
        • Partager sur Twitter
          4 août 2023 à 0:43:58

          Je n'ai ni utilisé C::B ni la SDL mais je pense que vous êtes dans un cas de "Dll Hell" sous Windows.

          Je pense que vous avez des Dlls portant le même nom mais incompatibles dans votre système.

          Je suppute qu'en mettant une Dll dans un projet C::B, il y a des options sur "quoi faire de ce machin" au moment de la compilation (à sa fin).

          Un des réglages les plus courants est de copier le truc dans le répertoire de sortie du "build" s'il a changé.

          Si votre plateforme n'est pas durci, il est commun pour un OS Windows d'aller chercher "assez prioritairement" les Dll dans le répertoire contenant l'exécutable.

          Il est très commun que les machines de développement soient configurées comme des passoires sécuritaires et régler votre IDE pour qu'il copie tout le fatras des Dll dans le répertoire "de test" et ainsi isoler ces problèmes avant de se pencher sur le déploiement du bidule.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          Undefined reference to SDL_Init

          × 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