Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Difficultés pour exécuter un projet SFML  (Lu 1178 fois)

0 Membres et 1 Invité sur ce sujet

Beafantles

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Difficultés pour exécuter un projet SFML
« le: Juin 29, 2017, 08:41:58 pm »
Bonsoir,


Je rencontre des problèmes pour exécuter un programme SFML correctement compilé. Je vais tout d'abord donner les différentes configurations de mon ordinateur, avant de vous dire ce que j'ai déjà fait, et puis enfin, vous montrer ce que j'obtiens.

Configuration :


Environnement --> Windows 10 64 bits
Compilateur --> Voici ce que j'obtiens lorsque j'exécute la commande g++ -v dans le terminal de commande (le compilateur est donc bien dans la variable PATH) :

     Using built-in specs.
     COLLECT_GCC=g++
     COLLECT_LTO_WRAPPER=C:/mingw32/bin/../libexec/gcc/i686-w64-mingw32/7.1.0/lto-wrapper.exe
     Target: i686-w64-mingw32
     Configured with: ../../../src/gcc-7.1.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --
     target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw710/i686-710-posix-dwarf-rt_v5-
     rev0/mingw32 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --
     enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --
     enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-
     runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-sjlj-exceptions --with-dwarf2 --disable-
     libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --
     disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-
     tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw710/prerequisites/i686-w64-
     mingw32-static --with-mpfr=/c/mingw710/prerequisites/i686-w64-mingw32-static --with-
     mpc=/c/mingw710/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw710/prerequisites/i686-
     w64-mingw32-static --with-pkgversion='i686-posix-dwarf-rev0, Built by MinGW-W64 project' --with-
     bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/i686-
     710-posix-dwarf-rt_v5-rev0/mingw32/opt/include -I/c/mingw710/prerequisites/i686-zlib-static/include -
     I/c/mingw710/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -
     I/c/mingw710/i686-710-posix-dwarf-rt_v5-rev0/mingw32/opt/include -I/c/mingw710/prerequisites/i686-
     zlib-static/include -I/c/mingw710/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -
     I/c/mingw710/i686-710-posix-dwarf-rt_v5-rev0/mingw32/opt/include -I/c/mingw710/prerequisites/i686-
     zlib-static/include -I/c/mingw710/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe -fno-
     ident -L/c/mingw710/i686-710-posix-dwarf-rt_v5-rev0/mingw32/opt/lib -
     L/c/mingw710/prerequisites/i686-zlib-static/lib -L/c/mingw710/prerequisites/i686-w64-mingw32-static/lib
     -Wl,--large-address-aware'
     Thread model: posix
     gcc version 7.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)


IDE utilisé --> Visual Studio Code 1.13.1
 
Arborescence du projet --> Le projet est organisé ainsi :

-[Dossier].vscode (Ce dossier contient différents fichiers de configuration de Visual Studio Code, je doute qu'ils soient à l'origine de mon problème alors je ne les poste pas)
-[Dossier]bin
    -main.exe (L'exécutable qui pose problème)
    -sfml-graphics-2.dll (une copie de la dll se trouvant dans C:\SFML_build\lib, j'explique tout ça plus loin)
    -sfml-system-2.dll (idem)
    -sfml-window-2.dll (idem)
-main.cpp (le code source du projet que je détaillerai plus loin)
-makefile (le fichier de configuration pour compiler mon projet, détaillé plus loin)

Ce que j'ai fait :

1) J'ai téléchargé le code source de SFML en cliquant sur le bouton suivant à l'URL https://www.sfml-dev.org/download/sfml/2.4.2/index-fr.php :


2) J'ai extrait le contenu de l'archive téléchargée dans C:\SFML-sources

3) J'ai configuré SFML avec Cmake-gui, tel que suit (conformément au tutoriel) :


4) J'ai lancé la commande mingw32-make à partir du terminal de commande dans C:\SFML_build, ce qui semble avoir fonctionné :


5) J'ai copié les fichiers sfml_window-2.dll, sfml-system-2.dll et sfml-graphics.dll, situés dans C:\SFML_build\lib dans le dossier bin de mon projet.

6) J'ai fait le fichier makefile de mon projet, dont voici le contenu :

CC=g++
EXEC=main
INCLUDES=-isystemC:\SFML-sources\include
LIBSPATH=-LC:\SFML_build\lib
LIBS=-lsfml-main -lsfml-graphics -lsfml-window -lsfml-system
EXEPATH=bin/
CCoptions=-Wall -Wextra -Wcast-qual -Wcast-align -Wconversion -Wdouble-promotion -Wold-style-cast -Woverloaded-virtual -Weffc++ -O2 -s -std=c++17 $(INCLUDES) $(LIBSPATH) $(LIBS)

all: $(EXEC)

main: main.o
        $(CC) -o $(EXEPATH)$@ $^ $(CCoptions)

main.o: main.cpp
        $(CC) -o $@ -c main.cpp $(CCoptions)

clean:
        del /F /S /Q *.o
 

7) J'ai fait le fichier main.cpp, dont voici le contenu :
#include <SFML/Window.hpp>

int main()
{
    sf::Window window(sf::VideoMode(800, 600), "My window");

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
    }

    return 0;
}

8 ) J'ai compilé en utilisant le fichier makefile.

Le problème :

Le problème est lorsque j'essaie de lancer le fichier main.exe situé dans le dossier bin, j'obtiens 3 fenêtres de dialogue d'erreur, dans cet ordre :

1)

2)

3)


J'ai déjà pas mal cherché de mon côté d'où le problème pouvait venir. J'ai cru comprendre que cela pouvait être dû au fait d'une incompatibilité entre la version des dll et la version du compilateur. Je pensais cependant que compiler SFML "soi-même" (en passant par Cmake-gui) aurait résolu le problème.


Merci d'avance pour vos réponses, j'ai essayé d'apporter le maximum d'informations utiles mais s'il en manque, n'hésitez pas à me le faire signaler.



Beafantles

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Difficultés pour exécuter un projet SFML
« Réponse #1 le: Juin 30, 2017, 07:54:35 am »
Tout semble en ordre, ça devrait fonctionner. Vérifie dans cmake-gui que CMAKE_CXX_COMPILER est bien C:/mingw32/bin/mingw32-g++.
Laurent Gomila - SFML developer

Beafantles

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Difficultés pour exécuter un projet SFML
« Réponse #2 le: Juin 30, 2017, 06:52:56 pm »
Merci Laurent pour cette réponse !

J'avais plusieurs versions de MinGW sur mon ordinateur et il semblerait que c'était la cause de mon problème.

J'ai finalement réussi à régler le souci  :)