Partage
  • Partager sur Facebook
  • Partager sur Twitter

référence indéfini sur une instance statique

Sujet résolu
    26 juillet 2023 à 18:14:21

    bonjour,

    je suis en ce moment en train de creer un moteur de jeux en suivant la série de TheCherno : https://www.youtube.com/playlist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT

    etant sous linux, je modifie certain morceaux de code mais une erreur persiste depuis quelque semaines :

    /usr/bin/ld: libplsEngine.a(Application.cpp.o): attention: réadressage sur « _ZN9PlsEngine5Input10s_instanceE » dans la section en lecture seule « .text._ZN9PlsEngine5Input16getMousePositionEv[_ZN9PlsEngine5Input16getMousePositionEv] »
    /usr/bin/ld : libplsEngine.a(Application.cpp.o) : dans la fonction « PlsEngine::Input::getMousePosition() » :
    /home/tidian/Documents/code/cpp/PlsEngine/Library/PlsEngine/input/Input.h:8 : référence indéfinie vers « PlsEngine::Input::s_instance »
    /usr/bin/ld : /home/tidian/Documents/code/cpp/PlsEngine/Library/PlsEngine/input/Input.h:8 : référence indéfinie vers « PlsEngine::Input::s_instance »
    /usr/bin/ld: attention: création de DT_TEXTREL dans un PIE
    collect2: error: ld returned 1 exit status
    make[2]: *** [CMakeFiles/PlsSandbox.dir/build.make:98 : PlsSandbox] Erreur 1
    make[1]: *** [CMakeFiles/Makefile2:111 : CMakeFiles/PlsSandbox.dir/all] Erreur 2
    make: *** [Makefile:91 : all] Erreur 2
    

    vous pouvez retrouver mon code ici

    merci d'avance de vos réponses.

    -
    Edité par TidianDelage1 26 juillet 2023 à 18:23:54

    • Partager sur Facebook
    • Partager sur Twitter
      26 juillet 2023 à 18:40:00

      Une variable static doit etre déclarée dans un .cpp (si tu n'utilise pas inline) https://stackoverflow.com/questions/16284629/undefined-reference-to-static-variable-c

      Ou alors utilise inline devant static.

      Ou alors un pattern singleton.

      Mais dans tous les cas, les globaux sont considérés comme des mauvaises pratiques

      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2023 à 0:43:12

        le problème venais du fait que je n'avais pas rajouter mon fichier dans le cmakelist.txt
        • Partager sur Facebook
        • Partager sur Twitter

        référence indéfini sur une instance statique

        × 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