Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plantage gcc

    15 octobre 2019 à 19:27:24

    Hello à tous,

    En voulant créer un programme pour réopndre à ce sujet, j'ai écrit ceci:

    #include <stdio.h>
    
    int main(void) {
    	printf("2.1+2.2=%d\n",add(2.1));
    	
    	return(0);
    }
    
    void add(int a, float b) {
    	return(a+b);
    }

    Mais ça plante au niveau de la compilation: 

    Quelqu'un a-t-il déjà eu ce genre de problème ?

    -
    Edité par edgarjacobs 15 octobre 2019 à 19:38:37

    • Partager sur Facebook
    • Partager sur Twitter

    On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

      15 octobre 2019 à 22:22:29

      Ma version de GCC  (9.2.0) ne plante pas. Quelle est cette version qui plante?
      • Partager sur Facebook
      • Partager sur Twitter
        15 octobre 2019 à 23:43:11

        gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)
        • Partager sur Facebook
        • Partager sur Twitter

        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

          16 octobre 2019 à 5:21:59

          Salut

          J'ai l'impression que gcc est parfois chatouilleux sur le type des arguments.

          Je me suis planté avec sprintf car j'ai oublié le premier paramètre.

          Je pensais qu'il retournait la chaîne alors qu'il la place dans le premier paramètre ... enfin?

          Il m'a conté toute une histoire sur les erreurs dans les headers.

          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            16 octobre 2019 à 15:16:36

            Fais voir ton PATH, ça me parait bizarre.
            • Partager sur Facebook
            • Partager sur Twitter

            git is great because Linus did it, mercurial is better because he didn't.

              16 octobre 2019 à 18:30:55

              Voici
              PATH=bin;g:\c\utils\;c:\mingw\bin;c:\mingw\msys\1.0\bin; .... la suite n'a pas d'importance

              -
              Edité par edgarjacobs 16 octobre 2019 à 18:34:36

              • Partager sur Facebook
              • Partager sur Twitter

              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                17 octobre 2019 à 0:07:04

                Salut,
                Tu connais assez bien la programmation pour savoir qu'il y a quelques erreurs dans ton code.
                Une fonction de type `void' passée en paramètre à `printf' c'est un peu louche.
                Ta fonction est définie avec deux paramètres et tu l'appelles avec un seul.
                Ton compilateur aurait dû te donner des erreurs de compilation, mais il plante.
                Je remarque que tu es avec mingw.org. Est-ce un bon choix?
                J'ai eu des problèmes avec ce package et je l'ai remplacé.
                Je suis avec Mingw-w64 de sourceforge.
                Il me donne parfois de drôles de messages mais il ne plante pas.
                Tu fais ce que tu veux mais à ta place, je changerais.
                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                  17 octobre 2019 à 9:28:46

                  Les rares fois où j'ai réussi à planter le linker/cc1 c'est quand j'avais un PATH moisi avec beaucoup de DLL incompatibles. Donc si, ça a une importance. Ce que moi je recommande est de faire un PATH vide avec le strict minimum exemple chez moi :

                  set PATH=C:\msys64\mingw64\bin
                  set PATH=%PATH%;C:\msys64\usr\bin
                  set PATH=%PATH%;C:\Windows\System32
                  



                  -
                  Edité par markand 18 octobre 2019 à 8:48:54

                  • Partager sur Facebook
                  • Partager sur Twitter

                  git is great because Linus did it, mercurial is better because he didn't.

                    17 octobre 2019 à 15:08:22

                    Salut,
                    Intéressant, quand j'étais sur Windows 8.1 avec mingw.org, mon path était assez gros et je ne sais pas vraiment tout ce qu'il contenait.
                    Je suis maintenant sur W10 avec Mingw-w64 et mon path n'est pas trop gros.
                    gcc Mingw plantais avec une erreur interne au niveau du linker également.
                    Je ne sais pas comment savoir si une DLL est incompatible, peux-tu m'éclairer?
                    J'ai d'abord ajouté le chemin de `gcc' à mon path et tout a bien fonctionné.
                    Ce que j'ai ajouté ensuite à mon path, c'est `GNU sed' avec ses DLL, et ça marche encore.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                      17 octobre 2019 à 16:23:58

                      markand a écrit:

                      Les rares fois où j'ai réussi à planter le linker/cc1 c'est quand j'avais un PATH moisi avec beaucoup de DLL incompatibles. Donc si, ça n'a une importance. Ce que moi je recommande est de faire un PATH vide avec le strict minimum

                      J'ai mis un path minimum:

                      PATH=c:\mingw\bin;c:\mingw\msys\1.0\bin;
                      

                      mais toujours le même plantage.

                      @PierrotLeFou:oui, mon programme a des erreurs, c'était le but pour répondre à ce sujet

                      • Partager sur Facebook
                      • Partager sur Twitter

                      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                        17 octobre 2019 à 17:16:45

                        Salut,
                        Je n'étais pas certain au sujet de l'idée du path minimal.
                        C'est pourquoi j'ai insisté sur le fait que ton compilateur aurait dû te donner des erreurs au lieu de planter.
                        J'ai essayé ton code sur mon ordi. Je n'ai pas d'erreur fatale, seulement des warnings.
                        En l'exécutant, il me donne `1' comme résultat.
                        Et il ne plante pas là non plus.
                        Comme je l'ai dit, je n'aime pas ton compilateur.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Le Tout est souvent plus grand que la somme de ses parties.

                          17 octobre 2019 à 20:59:24

                          edgarjacobs a écrit:

                          gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)


                          Je t'aurais bien dit de rapporter le bug à https://gcc.gnu.org/bugzilla/ , mais si c'est une version 6.3, de 2016 donc, c'est probablement trop tard.

                          S'agissant d'une erreur interne du compilateur, je ne pense pas que ça vaille la peine de chercher dans l'environnement (PATH, DLL ou que sais-je). Cherche plutôt dans le Bugzilla de GCC pour voir quand le bug a été corrigé.

                          -
                          Edité par Marc Mongenet 17 octobre 2019 à 20:59:49

                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 octobre 2019 à 1:41:09

                            Je ne sais pas à quand remontait ma version de MinGW. Cependant, je l'ai téléchargé en mai 2019 et installé sur Windows 8.1.
                            Le compilateur donnait "internal error" à la phase du linker et donnait une adresse pour signaler le bug.
                            Pas d'erreur avec les options -E, -S et -c. Avec -c, j'obtenais mon fichier *.o
                            Comme je devais passer à Windows 10, je n'ai pas insisté.
                            Quelqu'un m'a suggéré MinGW-w64 de sourceforge et c'est ce que j'ai installé.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Le Tout est souvent plus grand que la somme de ses parties.

                            Plantage gcc

                            × 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