Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: inoune le Février 21, 2013, 08:35:25 pm

Titre: Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 21, 2013, 08:35:25 pm
Salut
Voilà j'aimerais tester le premier code de l'ouverture d'une fenêtre.
#include <SFML/Window.hpp>

int main()
{
    sf::Window App(sf::VideoMode(800, 600, 32), "SFML Window");

    bool Running = true;
    while (Running)
    {
        App.Display();
    }

    return EXIT_SUCCESS;
}
 
Quand j'exécute le code, la console noire s'ouvre puis une boite de dialogue s'affiche indiquant: "test3.exe a cessé de fonctionner".
Quand j'utilise le debug, on m'indique:
Child process PID: 6196
Program received signal SIGSEGV, Segmentation fault.
In sf::VideoMode::VideoMode (this=0x320, ModeWidth=600, ModeHeight=32, ModeBpp=4) at D:\dev\sfml\sdk\SFML-1.6\src\SFML\Window\VideoMode.cpp:82 ()
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 21, 2013, 10:24:39 pm
Il faut recompiler SFML.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 21, 2013, 10:31:27 pm
Je voulais répondre pour dire justement que j'ai trouvé un topic sur le même sujet.  :) http://fr.sfml-dev.org/forums/index.php?topic=9929.0 (http://fr.sfml-dev.org/forums/index.php?topic=9929.0)
Ce tuto peut s'appliquer pour compiler SFML version 1.6 aussi? http://www.sfml-dev.org/tutorials/2.0/compile-with-cmake-fr.php (http://www.sfml-dev.org/tutorials/2.0/compile-with-cmake-fr.php)

Et merci.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 22, 2013, 07:53:53 am
Citer
Ce tuto peut s'appliquer pour compiler SFML version 1.6 aussi? http://www.sfml-dev.org/tutorials/2.0/compile-with-cmake-fr.php
S'il se trouve dans la catégorie "SFML 2.0", ce n'est pas pour rien ;)

Les tutoriels 1.6 expliquent aussi comment compiler SFML, il faut regarder à la fin du tutoriel de démarrage pour ton environnement de développement préféré.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 23, 2013, 08:19:47 pm
Merci, bon j'ai décidé de changer et de choisir la version future 2.0, je crois que c'est mieux après avoir vu plusieurs topic ici.
Je suis dans la même étape: la compilation de SFML
Dans la fenêtre de cmake-gui.exe, je n'ai pas bien compris quel fichier dois-je mettre dans la case "Where is the source code".

Merci de m'aider.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 23, 2013, 08:21:16 pm
Il faut mettre la racine du répertoire de SFML. Donc le répertoire qui contient les sous-répertoires "src", "include", etc.

Mais tu peux aussi prendre une version précompilée, il y a des nightly builds non-officiels dispos sur le forum Général anglais.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 23, 2013, 09:11:37 pm
Ceux-ci: http://sfml.my-gate.net/nightly/ (http://sfml.my-gate.net/nightly/) ?
J'ai choisi MinGW 64bits.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 23, 2013, 09:56:09 pm
Citer
Ceux-ci: http://sfml.my-gate.net/nightly/ ?
Oui.

Citer
J'ai choisi MinGW 64bits.
C'est pas vraiment un choix à faire, prend juste ce qui correspond au compilo que tu utilises.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 23, 2013, 10:05:57 pm
J'utilise CodeBlocks(MinGW) et windows 64 bits.

Je compile mon programme et je reçois des erreurs:
http://data.imagup.com/10/1176319313.png
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 23, 2013, 10:32:30 pm
Citer
J'utilise CodeBlocks(MinGW) et windows 64 bits.
Ce qui ne veut pas dire que ton compilo soit un 64 bits. Je pense d'ailleurs que ce n'est pas le cas.

Citer
Je compile mon programme et je reçois des erreurs
Là il faut voir comment tu as paramétré ton projet. Si tu suis bien le tutoriel de démarrage à la lettre, ça ne doit pas arriver.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 23, 2013, 11:54:06 pm
Ah oui tu as bien raison, mon CodeBlocks est bien une appli 32bits. Cependant, je ne vois pas la différence entre MinGW32 GCC et MinGW TDM GCC ???

Et merci.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 24, 2013, 12:03:31 am
Il y a plusieurs variantes de gcc sous Windows, chacune compilée avec ses propres options -- ce qui les rend incompatibles.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 24, 2013, 05:48:08 pm
Ok. J'ai installé MinGW32 GCC. Je recommence à appliquer le tuto depuis le début.
Je compile/exécute mon proramme et là une boite de dialogue s'ouvre:
(http://data.imagup.com/10/1176390196.png) (http://www.imagup.com/data/1176390196.html)

Merci de m'aider.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 24, 2013, 07:30:22 pm
On dirait que ce n'est toujours pas compatible. Recompile SFML, ça ira plus vite.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 24, 2013, 07:43:01 pm
Ok. Voilà je commence le tuto de la compilation de SFML, mais j'ignore pourquoi on m'indique "le chemin d'accès spécifié est introvable" dans l'invite de commande. Pourtant, j'ai bien réussi cette étape il y a deux jours quand je voulais recompiler SFML 1.6.
(http://data.imagup.com/12/1176397010.png) (http://www.imagup.com/data/1176397010.html)

Et merci encore une fois Laurent.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 24, 2013, 08:23:56 pm
Là personne ne peut t'aider, c'est entre toi et tes répertoires.

Quelques conseils :
- le copier-coller c'est bien (pour coller dans la console : clic droit)
- les chemins contenant des espaces c'est mal (surtout quand tu fais du développement)
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 24, 2013, 08:39:34 pm
Ah très bien, l'idée du copier/coller a bien marché ;) Apparemment je ne mettais pas un espace entre Files et (x86).
Juste pour s'assurer, parce que j'ai déjà posé la question. Dans "Where is the source code", je mets le dossier SFML que j'ai téléchargé, qui comporte "bin", "cmake", "doc", "include", "lib"..? parce que ce dossier ne contient pas un sous répertoire "src".
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 24, 2013, 08:45:38 pm
Non. Ca c'est une release que tu as téléchargée, elle ne contient pas le code source. Il faut télécharger le code depuis github (il y a aussi un lien direct sur la page de téléchargements du site web).
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 24, 2013, 08:54:36 pm
Ah très bien, je comprends. Merci.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 24, 2013, 10:40:04 pm
re
Je suis arrivée à l'étape du nmake. Je ne vois pas quel chemin dois-je mettre dans le PATH.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 24, 2013, 10:45:33 pm
Pour Visual Studio, il y a un fichier .bat qui le fait pour toi (mettre les bonnes variables dans le PATH). Il s'appelle vcvars32.bat (me rappelle plus où il se trouve dans l'installation de Visual Studio, une petite recherche te le donnera). Tu peux aussi démarrer une "console Visual C++" depuis le menu démarrer ; ça fait la même chose.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 24, 2013, 10:48:29 pm
Sinon pour CodeBlocks, j'utilise codeblocks\MinGW\bin, comme dans le cas de cmake?
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 25, 2013, 08:52:38 am
Oui. Mais pourquoi tu parles de Code::Blocks maintenant ?
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 25, 2013, 08:18:37 pm
Je parle en fait du cas de MinGW.
Mais le nmake n'est pas reconnu.
(http://data.imagup.com/11/1176485678.png) (http://www.imagup.com/data/1176485678.html)
Je crois qu'il  faut plutôt indiquer le chemin de la commande nmake, mais je ne sais pas lequel ???

Edit
Je devais mettre mingw32-make. Mais là, quand je tape cette commande, on me dit "No targets specified and no makefile found. Stop".
Je crois que le chemin que j'ai mis dans le PATH est erroné, fallait pas plutôt mettre le chemin du dossier qui comporte les fichiers résultant de la compilation?
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 25, 2013, 08:52:28 pm
Tu fais nimp en fait ;D

Pardon.

nmake c'est pour Visual C++.
Pour MinGW c'est mingw32-make qu'il faut invoquer.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 25, 2013, 09:12:44 pm
Oui j'ai bien fait mingw32-make. Mais je doute du chemin du path ???
(http://data.imagup.com/11/1176490611.png) (http://www.imagup.com/data/1176490611.html)
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 25, 2013, 10:52:03 pm
Le path est bon (tu dois juste mettre le chemin qui contient mingw32-make.exe), mais à mon avis le répertoire de travail est mauvais. Les fichiers générés par CMake ne se trouvent pas dans C:\User\Admin, j'imagine ?
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 25, 2013, 10:55:45 pm
Oui en effet , je les ai mis dans un sous dosssier "compiler": C:\MinGW472x32\compiler
mingw32-make.exe se trouve bien dans C:\Program files (x86)\codeBlocks\MinGW\bin

Ah ça va j'ai pu ouvrir l'invite de commande dans le dossier où sont stockés les fichiers de compilations.
Maintenant la commande ming32-make passe sans problème.

Le résultat:
(http://data.imagup.com/10/1176498616.png) (http://www.imagup.com/data/1176498616.html)
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 26, 2013, 03:13:15 pm
Impec :)
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 26, 2013, 08:22:22 pm
Salut Laurent
Merci, je compile/exécute de nouveau, et je reçois cette erreur:
(http://data.imagup.com/10/1176570888.png) (http://www.imagup.com/data/1176570888.html)

Pourtant j'ai bien suivi les étapes :-\
(http://data.imagup.com/10/1176572266.png) (http://www.imagup.com/data/1176572267.html)
(http://data.imagup.com/12/1176572287.png) (http://www.imagup.com/data/1176572287.html)
(http://data.imagup.com/10/1176572306.png) (http://www.imagup.com/data/1176572306.html)
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 26, 2013, 08:55:52 pm
Est-ce que tu te rends compte que tu as compilé avec un compilo (CodeBlocks\MinGW\bin) et en utilise un autre dans ton projet (C:\MinGW472x32) ?

Sois attentif à ce que tu fais, là c'est pas une question de compétence, mais simplement d'essayer de comprendre ce que tu fais et de le faire avec un minimum de bon sens.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 26, 2013, 09:11:09 pm
MinGW472x32 est le dossier SFML que j'ai téléchargé sur le site.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 26, 2013, 10:22:35 pm
;D

Désolé. Je me suis fait avoir par le nom. Et par l'erreur aussi, qui est typique d'un mélange de versions incompatibles. Mais là je n'ai plus de piste, désolé.

Est-ce que tu as essayé de coller le message d'erreur dans Google ? La plupart du temps, avec des messages précis et ciblés comme ça, on trouve de bonnes infos.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 26, 2013, 10:30:00 pm
Oui j'ai déjà essayé, mais je ne trouve pas une piste :/
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 26, 2013, 10:46:31 pm
Et si tu lances ton exécutable depuis l'explorateur de fichiers, pas depuis Code::Blocks, ça fait la même erreur ? Si oui, est-ce que tu peux faire un coup de Dependency Walker (depends.exe -- 1er lien Google normalement) sur l'exécutable pour voir où il va chercher libstdc++-6.dll, et t'assurer que c'est celle de ton MinGW et pas un intrus qui se trouverait dans un autre répertoire ?
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 26, 2013, 11:01:30 pm
Salut
Si j'ouvre le fichier .exe depuis l'explorateur, ça m'indique une autre erreur:
(http://data.imagup.com/12/1176581780.png) (http://www.imagup.com/data/1176581780.html)
DAns le sous-répertoire bin du dossier de SFML, je ne trouve pas un fichier libgcc_s_dw2-1.dll
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 26, 2013, 11:09:14 pm
Celui-ci vient avec ton compilateur (donc dans CodeBlocks\MinGW\bin). C'est aussi là que tu dois trouver libstdc++-6.dll.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 26, 2013, 11:14:13 pm
Oui effectivement, ils sont bien dans ce dossier. Après m'avoir demandé deux autres dll que je les ai copié, on m'affiche cette même fenêtre que celle que je reçois via codeblocks.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 27, 2013, 07:53:20 am
Tu as essayé Dependency Walker ?
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 27, 2013, 08:29:33 pm
Bonsoir Laurent
Voici ce que ça donne avec Dependency Walker
(http://data.imagup.com/10/1176659136.png) (http://www.imagup.com/data/1176659136.html)
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Février 27, 2013, 08:42:07 pm
Le but est de trouver le chemin de la DLL libstdc++-6.dll que ton appli et/ou SFML utilise.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Février 27, 2013, 11:30:34 pm
Salut
Je sais que ça ne se fait pas, mais j'ai essayé de voir ce qui se passe si je met libstdc++.dll d'un autre dossier MinGW autre que celui avec lequel je travaille (CodeBlocks\MinGW\bin), je reçois un autre message d'erreur:
(http://nsa29.casimages.com/img/2013/02/27/130227113155801920.png) (http://www.casimages.com/img.php?i=130227113155801920.png)
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Koryushin le Mars 01, 2013, 01:03:42 pm
Perso dans les options du linker j'utilise l'option: -static-libgcc -static-libstdc++
Je n'aime pas avoir à copier/coller des dll dans mon dossier de travail. Peut être que ça peut te servir.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: inoune le Mars 01, 2013, 10:47:31 pm
Salut
Merci Koryushin, j'ai essayé d'ajouter les deux options, mais je reçois toujours la même erreur.
Titre: Re : Code d'ouverture d'une fenêtre_test.exe a cessé de fonctionner
Posté par: Laurent le Mars 02, 2013, 10:03:41 am
Si SFML n'est pas elle-même aussi compilée avec ces options ça ne sert à rien ;)