Partage
  • Partager sur Facebook
  • Partager sur Twitter

mingw (nouvelle version) trouve pas les libs.

Sujet résolu
    5 juin 2021 à 10:01:23

    Salut!

    J'ai téléchargé la dernière version de mingw sur ce site :

    https://nuwen.net/mingw.html

    Mais quand je compile mon projet il ne trouve pas certaines lib :

    ||=== Build: Debug in ODFAEGCREATOR (compiler: GNU GCC Compiler) ===|
    ld.exe||cannot find -lopengl32|
    ld.exe||cannot find -lgdi32|
    ld.exe||cannot find -lstdc++|
    ld.exe||cannot find -lmingw32|
    ld.exe||cannot find -lgcc|
    ld.exe||cannot find -lmoldname|
    ld.exe||cannot find -lmingwex|
    ld.exe||cannot find -lmsvcrt|
    ld.exe||cannot find -lpthread|
    ld.exe||cannot find -ladvapi32|
    ld.exe||cannot find -lshell32|
    ld.exe||cannot find -luser32|
    ld.exe||cannot find -lkernel32|
    ld.exe||cannot find -lmingw32|
    ld.exe||cannot find -lgcc|
    ld.exe||cannot find -lmoldname|
    ld.exe||cannot find -lmingwex|
    ld.exe||cannot find -lmsvcrt|
    ||error: ld returned 1 exit status|
    ||=== Build failed: 19 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
    

    Pourtant je n'ai aucune erreur avec tdm-gcc et avec visual studio.

    EDIT : Je compile avec l'option -m32 parce que c'est un compilateur 64 bits mais les dépendances sont compilées en 32 bits.

    EDIT 2 : les libs ne sont même pas dans le dossier lib du compilateur c'est tellement moisi je n'arrive pas à trouver un téléchargement de mingw qui fonctionne.

    -
    Edité par OmbreNoire 5 juin 2021 à 10:31:46

    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2021 à 10:49:17

      On t'a dit mingw-w64 !

      https://sourceforge.net/projects/mingw-w64/

      -
      Edité par dragonjoker 5 juin 2021 à 10:50:32

      • Partager sur Facebook
      • Partager sur Twitter

      Si vous ne trouvez plus rien, cherchez autre chose.

        5 juin 2021 à 11:04:21

        Ok c'est bon j'ai réussi à en trouver un, qui fonctionne!

        (Version 11 de mingw)

        -
        Edité par OmbreNoire 5 juin 2021 à 11:04:42

        • Partager sur Facebook
        • Partager sur Twitter
          5 juin 2021 à 14:35:10

          La dernière version de mingw64 est 8.0.0, et la dernière version de gcc est la 11.

          Les dernières version pré compilées sur https://sourceforge.net/projects/mingw-w64/ sont très vieilles.

          https://nuwen.net/mingw.html fournit des versions plus récentes mais ça n'a pas l'air d'avoir été mis à jour depuis 2 ans.

          https://www.msys2.org/  permet d'installer les dernières versions. Encore plus rapide si tu veux un truc minimaliste: https://winlibs.com/

          • Partager sur Facebook
          • Partager sur Twitter
            5 juin 2021 à 15:25:35

            J'ai trouvé une version avec GCC 11 et mingww64 mais le soucis c'est que je ne parviens pas à compiler en 64 bits je dépends de freestyle qui dépend de zlib et même en compilant zlib en 64 bits j'ai des undefined références, et lorsque je compile en 32 bits avec mingw64 c'est la merde il ne trouve plus certaines libs. Parce que c'est des libs 64 bits dans le dossier du compile.

            -
            Edité par OmbreNoire 5 juin 2021 à 15:26:15

            • Partager sur Facebook
            • Partager sur Twitter
              5 juin 2021 à 16:30:29

              Freestyle? Tu veux dire Freetype? Cette librairie dépend optionnellement de zlib, libpng, bzip2 et brotli. Si tu as des undefined reference, ca n'a sans doute rien à voir avec ton compilateur mais plus avec quelque chose que tu as mal fait en compilant ou en liant les librairies.
              • Partager sur Facebook
              • Partager sur Twitter
                5 juin 2021 à 17:10:13

                Oui freetype, je suis entrain de chercher entre autre comment compiler freetype sans dépendre de zlib, mais même si je décoche la case ça ne fonctionne pas il recherche toujours la dépendance de zlib et il ne la trouve pas même si je lui indique où elle se trouve on dirait que cmake a configuré la compilation de freetype sans zlib, mais codeblocks la recherche quand même, je n'ai pas eu ce problème en compilant en 32 bits pourtant et je n'ai même pas eu besoin de link zlib.

                EDIT : bon j'ai réussi je l'ai installé avec vcpkg ça marche pas toujours avec x64-mingw-dynamic mais cette fois-ci ça a marché.

                -
                Edité par OmbreNoire 5 juin 2021 à 18:15:22

                • Partager sur Facebook
                • Partager sur Twitter
                  5 juin 2021 à 20:20:01

                  Oui, comme beaucoup de vieilles librairies, le système de build de Freetype applique une très mauvaise pratique: activer une fonctionnalité s'il trouve la dépendance quelque part sur la machine de build.

                  Le seul moyen de désactiver cette dépendance à coup sûr est de modifier le CMakeLists de Freetype (supprimer find_package(ZLIB) et remplacer if (ZLIB_FOUND) par if(0)).

                  Maintenant tu n'as pas de raison d'être embêté par le fait de Freetype dépende de zlib. Si freetype est statique, il suffit d'aussi linker zlib dans ton application finale.

                  Et oui: utilise plutôt un gestionnaire de paquets comme vcpkg ou conan, ces gestionnaires de paquets connaissent par coeur ce type de problème et patchent à tour de bras les système de build pétés des librairies.

                  -
                  Edité par SpaceIn 5 juin 2021 à 20:21:55

                  • Partager sur Facebook
                  • Partager sur Twitter

                  mingw (nouvelle version) trouve pas les libs.

                  × 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