Partage
  • Partager sur Facebook
  • Partager sur Twitter

SFML

    21 février 2018 à 21:03:10

    Bonsoir, j'utilise la SFML 2.4.2 avec Code Block, j'ai donc installer la SFML, l'installation s'est parfaitement dérouler (le code exemple qu'ils donnent s’exécute correctement sans problèmes), j'ai suivit ce tuto pour installer la SFML https://www.sfml-dev.org/tutorials/2.4/start-cb-fr.php

    Mais j'ai un petit souci, je n'arrive pas à charger une image avec la SFML, voici mon code:

    #include <SFML/Graphics.hpp>
    #include <iostream>
    
    int main()
    {
        sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    
        sf::Texture texture;
        if(!texture.loadFromFile("GTS.png", sf::IntRect(10, 10, 32, 32)))
            std::cout << "erreur de chargement du fichier" << std::endl;
    
        while (window.isOpen())
        {
            sf::Event event;
            while (window.pollEvent(event))
            {
                if (event.type == sf::Event::Closed)
                    window.close();
            }
        }
        return 0;
    }
    

    J'ai un joli message d’erreur:

    ||=== Build: Debug in sfml (compiler: GNU GCC Compiler) ===|
    obj\Debug\main.o||In function `main':|
    C:\Users\Magic\Desktop\sfml\main.cpp|9|undefined reference to `sf::Texture::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sf::Rect<int> const&)'|
    ||error: ld returned 1 exit status|
    ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
    

    Je ne comprend pas pourquoi sa ne fonctionne pas, j'ai suivit beaucoup de tuto (écrit et vidéo) mais sa n'a rien changer.

    Merci d'avoir pris le temps de lire ce message et de m'aider ^^

    (désoler pour les fautes d’orthographe^^')


    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2018 à 21:17:21

      Bonsoir,

      C'est la dernière version de Code::Blocks (17.12) que tu as installé ?

      • Partager sur Facebook
      • Partager sur Twitter

      ...

        21 février 2018 à 21:52:37

        Ok, donc le problème se situe au niveau de la version du compilateur fournit par défaut avec Code::Blocks, à savoir gcc 5.1.0. Il n'y a pas de versions SFML pré-compilée qui soit compatible.

        Donc 2 solutions :

        • installer la toute dernière version de gcc puis "recompiler" la SFML avec CMake pour qu'elle soit compatible avec cette dernière version, puis reconfigurer Code::Blocks
        • installer la dernière version de MinGW contenant gcc en version 6.3.0 qui est compatible avec la version SFML GCC 6.1.0 MinGW (DW2), puis reconfigurer Code::Blocks

        Si tu es à l'aise avec CMake, autant passer par la première (perso j'ai déjà essayé mais sans succès :p). Sinon pour la 2ème solution, tu peux regarder ->  ici.

        -
        Edité par Guit0Xx 21 février 2018 à 21:58:42

        • Partager sur Facebook
        • Partager sur Twitter

        ...

          21 février 2018 à 21:56:34

          Merci, je vais essayer, je te tient au courant

          Edit: C'est bon sa fonctionne bien, merci du coup de main

          -
          Edité par kkabu 21 février 2018 à 22:54:34

          • Partager sur Facebook
          • Partager sur Twitter
            1 mars 2018 à 13:01:27

            Salut, désoler du nécro post, mais comme mon problème est toujours dans la même catégorie...

            La SFML fonctionne parfaitement pour le graphique, j'arrive parfaitement à charger une image, la découper, l'atribuer, l'afficher, la faire bouger etc...

            Mais le problème est l'audio, j'ai regarder le tuto audio du site SFML, j'ai codeblock 17.12, la SFML 2.4.2 et j'ai gcc en version 6.3.0 .

            Le code plante dès que je met cette ligne:

            sf::Music music;

            Pourtant j'ai bien inclu les lib:

            #include <SFML/Audio.hpp>

            et dans le projet aussi:


            Voici le code erreur:

            ||=== Build: Debug in test-sfml (compiler: GNU GCC Compiler) ===|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream4playEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|121|undefined reference to `_imp__alSourcePlay'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream5pauseEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|154|undefined reference to `_imp__alSourcePause'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZNK2sf11SoundStream16getPlayingOffsetEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|240|undefined reference to `_imp__alGetSourcef'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream10streamDataEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|282|undefined reference to `_imp__alGenBuffers'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|290|undefined reference to `_imp__alSourcePlay'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|297|undefined reference to `_imp__alSourcePause'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|388|undefined reference to `_imp__alSourceStop'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|394|undefined reference to `_imp__alSourcei'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|395|undefined reference to `_imp__alDeleteBuffers'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|314|undefined reference to `_imp__alSourcePlay'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|326|undefined reference to `_imp__alGetSourcei'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|332|undefined reference to `_imp__alSourceUnqueueBuffers'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|353|undefined reference to `_imp__alGetBufferi'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|354|undefined reference to `_imp__alGetBufferi'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream17fillAndPushBufferEj':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|437|undefined reference to `_imp__alBufferData'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|440|undefined reference to `_imp__alSourceQueueBuffers'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream10clearQueueEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|467|undefined reference to `_imp__alGetSourcei'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|472|undefined reference to `_imp__alSourceUnqueueBuffers'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac5checkERNS_11InputStreamE':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|189|undefined reference to `FLAC__stream_decoder_new'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|197|undefined reference to `FLAC__stream_decoder_init_stream'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|200|undefined reference to `FLAC__stream_decoder_process_until_end_of_metadata'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|203|undefined reference to `FLAC__stream_decoder_finish'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|204|undefined reference to `FLAC__stream_decoder_delete'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac4openERNS_11InputStreamERNS_15SoundFileReader4InfoE':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|230|undefined reference to `FLAC__stream_decoder_new'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|239|undefined reference to `FLAC__stream_decoder_init_stream'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|242|undefined reference to `FLAC__stream_decoder_process_until_end_of_metadata'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac4seekEy':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|270|undefined reference to `FLAC__stream_decoder_seek_absolute'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac4readEPsy':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|308|undefined reference to `FLAC__stream_decoder_process_single'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|312|undefined reference to `FLAC__stream_decoder_get_state'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac5closeEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|325|undefined reference to `FLAC__stream_decoder_finish'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|326|undefined reference to `FLAC__stream_decoder_delete'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg5checkERNS_11InputStreamE':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|77|undefined reference to `ov_test_callbacks'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|79|undefined reference to `ov_clear'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg4openERNS_11InputStreamERNS_15SoundFileReader4InfoE':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|109|undefined reference to `ov_open_callbacks'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|117|undefined reference to `ov_info'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|120|undefined reference to `ov_pcm_total'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg4seekEy':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|134|undefined reference to `ov_pcm_seek'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg4readEPsy':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|148|undefined reference to `ov_read'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg5closeEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|171|undefined reference to `ov_clear'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileWriterFlac4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|69|undefined reference to `FLAC__stream_encoder_new'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|77|undefined reference to `FLAC__stream_encoder_set_channels'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|78|undefined reference to `FLAC__stream_encoder_set_bits_per_sample'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|79|undefined reference to `FLAC__stream_encoder_set_sample_rate'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|82|undefined reference to `FLAC__stream_encoder_init_file'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileWriterFlac5writeEPKsy':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|108|undefined reference to `FLAC__stream_encoder_process_interleaved'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileWriterFlac5closeEv':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|123|undefined reference to `FLAC__stream_encoder_finish'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|126|undefined reference to `FLAC__stream_encoder_delete'|
            C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileWriterOgg4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj':|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterOgg.cpp|75|undefined reference to `ogg_stream_init'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterOgg.cpp|76|undefined reference to `vorbis_info_init'|
            D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterOgg.cpp|80|undefined reference to `vorbis_encode_init_vbr'|
            ||More errors follow but not being shown.|
            ||Edit the max errors limit in compiler options...|
            ||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
            
            Merci encore de votre aide 
            (au faite, j'ai aussi tenter de demander de l'aide à mon prof d'info, il a pas trouver non plus, bonne chance ^^')





            • Partager sur Facebook
            • Partager sur Twitter
              1 mars 2018 à 16:35:34

              Hello,

              J'en étais sûr que quelqu'un allait se manifester pour l'audio, pourtant suffit de lire la doc ^^. Et ton prof' est nul si il n'a pas trouvé.

              Donc dans les tutos, on trouve ce paragraphe à la fin :

              "Si vous utilisez le module sfml-audio (que ce soit dynamiquement ou statiquement), vous devez aussi copier la DLL de bibliothèque externe dont il dépend, qui est OpenAL32.dll. Ces fichiers se trouvent également dans <installation-de-sfml/bin>."

              Ce qui veut dire que tu dois copier le OpenAL32.dll qui se trouve dans le dossier bin du dossier SFML. Ensuite suffit de le coller dans le dossier de ton programme (à la racine ça devrait le faire).

              Et aussi, comme je l'ai dit dans le tuto, l'ordre de linkage est important !! La tu as mis le module audio en tête de liste, ba du coup ça fou le bordel et il n'y a plus rien qui fonctionne ^^ (en plus il manque des dépendances pour l'audio dans ta liste...)

              Du coup, pour la config DEBUG :

              sfml-graphics-s-d

              sfml-window-s-d

              sfml-audio-s-d

              sfml-system-s-d

              winmm

              gdi32

              opengl32

              freetype

              jpeg

              openal32

              flac

              vorbisenc

              vorbisfile

              vorbisenc

              ogg

              Et pour la partie RELEASE :

              sfml-graphics-s

              sfml-window-s

              sfml-audio-s

              sfml-system-s

              winmm

              gdi32

              opengl32

              freetype

              jpeg

              openal32

              flac

              vorbisenc

              vorbisfile

              vorbisenc

              ogg

              Il faut vraiment comprendre ce principe de linkage et de dépendances, c'est important...

              -
              Edité par Guit0Xx 1 mars 2018 à 16:56:45

              • Partager sur Facebook
              • Partager sur Twitter

              ...

                13 mars 2018 à 21:24:31

                Re- merci pour l'aide et désoler pour ma réponse très tardive, je suis parvenu à corriger mes erreurs, sa fonctionne bien, j'ai fait 2 erreurs:

                je n'avais pas inclut dans mon répertoire Openal32 et je n'avais pas linker les libs dans le bon ordre.

                Encore merci pour m'être venue en aide.(et désoler du nécro-post mais je trouve sa poli de remercier ceux qui me viennent en aide)

                -
                Edité par kkabu 13 mars 2018 à 21:24:48

                • Partager sur Facebook
                • Partager sur Twitter

                SFML

                × 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