Partage
  • Partager sur Facebook
  • Partager sur Twitter

SFML2 / Code Blocks / Windows - Quelques Conseils

    5 novembre 2018 à 12:06:27

    Bonjour à tous,

    Après avoir passé des heures sur les forums à chercher pourquoi sur mon Pc en windows 7 la compilation d'un projet en SFML passait et pas sur mon Pc en windows 10, je vous fais part de mes quelques pistes

    D'abord, l'environnement:

     - CodeBlocks 17.12 (avec GCC 5.1.0)

     - SFML GCC 5.1.0 TDM (SJLJ) - Code::Blocks - 32-bit


    Le gros problème de windows, vient de toutes ses variables d'environnement qui obscurcissent les binaires et les dll utilisées.

    Du coup, en premier lieu, sous windows,  j'ai viré toutes allusions à des "c:\mingw\bin" ou autre dans mes variables d'environnement.

    Ensuite, sous CodeBlocks:

    • menu Settings->Compiler->Compiler Settings->Compiler Flags: les options -static-libgcc et -static-libstdc++ sont cochées.
    • menu Settings->Compiler->Compiler Settings->Search Directories->Linker: je rajoute "C:\Program Files (x86)\CodeBlocks\MinGW\bin" dans le désir fou que le linker veuille bien me prendre le fichier libstdc++6.dll qui s'y trouve pour faire son édition de lien et que je ne me retrouve pas avec un message du genre "blbal54566blibl est introuvable dans la bibliothèque de liens dynamiques libstdc++-6.dll."
    • menu Settings->Compiler->Compiler Settings->Toolchain executables: Je lui mets à la mano le chemin vers les binaires du MinGw de codeblocks ("C:\Program Files (x86)\CodeBlocks\MinGW")
    • menu build Option du projet -> Search Directories -> Compiler: Je rajoute le chemin du include des sources de la SFML que j'ai téléchargé ("E:\DevPerso\SFML-2.5.1-windows-gcc-5.1.0-tdm-32-bit\SFML-2.5.1\include")
    • menu build Option du projet -> Search Directories -> Linker: Je rajoute le chemin vers le repertoires des lib de la SFML ("E:\DevPerso\SFML-2.5.1-windows-gcc-5.1.0-tdm-32-bit\SFML-2.5.1\lib") et je rajoute le chemin vers le repertoire où se trouve la
      libstdc++-6.dll que je veux utiliser parce que je veux vraiment celle là.
    • menu build Option du projet -> Linker setting: on rajoute les dépendances tel que ca a pu être décrit un peu partout (smfl-graphics-d,... etc).
    Voilà, ca devrait au moins compiler et linker.
    Ensuite, si ca ne s’exécute pas et qu'on a un message du type "gnagnagna, j'ai bien ta librairie libstdc++-6.dll mais tu vas rire, c'est pas la bonne version!!", c'est parce que windows, ce fourbe, va utiliser quand même le fichier libstdc++-6.dll qu'il a dans son système.
    Du coup, ce que j'ai fait c'est, une petite recherche du fichier ("trouvé en "C:\Windows\SysWOW64") et renommage!!! (et çà j'ai lutté pour le trouver)

    En espérant que ca puisse en débloquer quelques uns.


    • Partager sur Facebook
    • Partager sur Twitter
      6 novembre 2018 à 11:13:26

      >Le gros problème de windows, vient de toutes ses variables d'environnement

      Non, Windows fonctionne très bien sans variable d'environnement puisqu'il utilise massivement la base de Registre.

      Les variables d'environnement, c'est pour les programmes nostalgiques d'Unix.

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

      SFML2 / Code Blocks / Windows - Quelques Conseils

      × 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