IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Debutant : warnings sous MinGW


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 475
    Par défaut Debutant : warnings sous MinGW
    Bonjour,

    Voilà j'ai le petit bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #include <stdio.h>
     
     
    int main()
    {
     
        char chaine[20];
     
        printf("Tapez une phrase : \n");
        fgets(chaine, sizeof chaine, stdin); 
        printf("Vous avez tape : '%s'", chaine);
     
     
        return 0;
    }
    (c'est pour comprendre les saisies sécurisées en C, le code n'est pas complet mais ce n'est pas cela le problème).
    J'obtiens 17 warnings du compilo que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Compiling: main.c
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:26,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/stddef.h:6:2: warning: #include_next is a GCC extension
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:28,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/stdarg.h:6:2: warning: #include_next is a GCC extension
    In file included from main.c:1:
    C:/Program Files/CodeBlocks/include/stdio.h:219: warning: no previous prototype for 'vsnprintf'
    C:/Program Files/CodeBlocks/include/stdio.h:258: warning: no previous prototype for 'getc'
    C:/Program Files/CodeBlocks/include/stdio.h:265: warning: no previous prototype for 'putc'
    C:/Program Files/CodeBlocks/include/stdio.h:272: warning: no previous prototype for 'getchar'
    C:/Program Files/CodeBlocks/include/stdio.h:279: warning: no previous prototype for 'putchar'
    C:/Program Files/CodeBlocks/include/stdio.h:330: warning: ISO C90 does not support `long long'
    In file included from C:/Program Files/CodeBlocks/include/sys/types.h:21,
                     from C:/Program Files/CodeBlocks/include/stdio.h:399,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/stddef.h:6:2: warning: #include_next is a GCC extension
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:399,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/sys/types.h:32: warning: ISO C90 does not support `long long'
    C:/Program Files/CodeBlocks/include/sys/types.h:110: warning: ISO C90 does not support `long long'
    C:/Program Files/CodeBlocks/include/sys/types.h:115: warning: ISO C90 does not support `long long'
    In file included from main.c:1:
    C:/Program Files/CodeBlocks/include/stdio.h:401: warning: no previous prototype for 'fopen64'
    C:/Program Files/CodeBlocks/include/stdio.h:413: warning: no previous prototype for 'ftello64'
    In file included from main.c:1:
    C:/Program Files/CodeBlocks/include/stdio.h:416:14: warning: use of C99 long long integer constant
    C:/Program Files/CodeBlocks/include/stdio.h:468: warning: no previous prototype for 'vsnwprintf'
    main.c:5: warning: function declaration isn't a prototype
    Process terminated with status 0 (0 minutes, 0 seconds)
    0 errors, 17 warnings
    Visiblement ils sont tous liés à la bibliothèque <sdtio> sauf le dernier pour lequel j'ai une hypothèse (est-elle bonne ?) : "function declaration isn't a prototype" => est-ce à cause du fait que je n'ai pas d'autre fonction dans mon programme et qu'il n'accepte pas que je mette ça directement dans la fonction "main" ?

    Pour les autres warnings, je n'ai rien trouvé mis à part quelques documents sur les extensions "propriétaires" de la bibliothèque standard GNU. Je n'y ai pas compris grand chose. Comment modifier le programme pour qu'il n'y ait plus de warnings du tout ?

    Merci d'avance de votre réponse. J'ai cherché dans la FAQ mais je n'ai rien trouvé.

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par richard
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:26,
    from main.c:1:
    C:/Program Files/CodeBlocks/include/stddef.h:6:2: warning: #include_next is a GCC extension
    Voici mes recommandations :

    http://emmanuel-delahaye.developpez....tm#cfg_compilo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums2\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:5: warning: function declaration isn't a prototype
    Linking console executable: C:\dev\forums2\console.exe
    Process terminated with status 0 (0 minutes, 5 seconds)
    0 errors, 1 warnings

  3. #3
    Membre chevronné
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 475
    Par défaut
    Bonjour,

    Merci de cette réponse très rapide. J'avais déjà configuré MinGW en "mode paranoïaque" via Code:Blocks comme précisé dans ta page perso.

    Je l'ai refait trois fois (onglet settings, compiler, other options / copier coller puis OK puis CTRL F-11) .

    Mais j'ai exactement les mêmes 17 warnings. J'ai effacé le projet et tout retapé en sauvegardant dans un nouveau projet (répertoire nv_projet dans le bureau de windows XP) et j'ai encore les mêmes warnings. Je me suis penché sur la doc de GCC et j'avoue que je reste perplexe.


    De plus je n'ai toujours pas compris le dernier warning : si j'essaie

    là j'ai 47 (oui quarante sept) warnings.

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par richard
    Merci de cette réponse très rapide. J'avais déjà configuré MinGW en "mode paranoïaque" via Code:Blocks comme précisé dans ta page perso.
    Justement, le mode paranoïaque n'est pas recommandé aux débutants. Il y a une autre configuration recommandée, et c'est celle-ci qu'il faut mettre en oeuvre.

  5. #5
    Membre chevronné
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 475
    Par défaut
    J'ai reconfiguré Mingw32 via Code:Blocks de la façon suivante (page perso "EMDEL" ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    -Wall -Wextra -O2 -Wwrite-strings -Wstrict-prototypes

    C'est mieux : je n'ai plus que 9 warnings. Comment faire pour arriver à zéro ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\Documents and Settings\Propriétaire\Bureau\projet saisie\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:26,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/stddef.h:6:2: warning: #include_next is a GCC extension
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:28,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/stdarg.h:6:2: warning: #include_next is a GCC extension
    In file included from main.c:1:
    C:/Program Files/CodeBlocks/include/stdio.h:330: warning: ISO C90 does not support `long long'
    In file included from C:/Program Files/CodeBlocks/include/sys/types.h:21,
                     from C:/Program Files/CodeBlocks/include/stdio.h:399,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/stddef.h:6:2: warning: #include_next is a GCC extension
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:399,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/sys/types.h:32: warning: ISO C90 does not support `long long'
    C:/Program Files/CodeBlocks/include/sys/types.h:110: warning: ISO C90 does not support `long long'
    C:/Program Files/CodeBlocks/include/sys/types.h:115: warning: ISO C90 does not support `long long'
    In file included from main.c:1:
    C:/Program Files/CodeBlocks/include/stdio.h:416:14: warning: use of C99 long long integer constant
    main.c:5: warning: function declaration isn't a prototype
    Linking console executable: C:\Documents and Settings\Propriétaire\Bureau\projet saisie\console.exe
    Process terminated with status 0 (0 minutes, 0 seconds)
    0 errors, 9 warnings
    Désolé pour ces questions de débutant ! et merci pour les réponses.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par richard
    J'ai reconfiguré Mingw32 via Code:Blocks de la façon suivante (page perso "EMDEL" ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    -Wall -Wextra -O2 -Wwrite-strings -Wstrict-prototypes
    C'est mieux : je n'ai plus que 9 warnings. Comment faire pour arriver à zéro ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Compiling: main.c
    In file included from C:/Program Files/CodeBlocks/include/stdio.h:26,
                     from main.c:1:
    C:/Program Files/CodeBlocks/include/stddef.h:6:2: warning: #include_next is a GCC extension
    Tu dois avoir ailleurs une configuration qui force -ansi ou -std=c90. Attention à bien considérer la configuration de l'IDE et celle du projet. Elle peuvent "s'ajouter". Voir aussi ce qui est coché dans l'onglet de configuration.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [debutant] warning pour iostream
    Par ameliepim dans le forum SL & STL
    Réponses: 17
    Dernier message: 07/06/2006, 21h24
  2. [debutant] C++ sous unix
    Par tomsoyer dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 01/03/2006, 23h00
  3. Pb compilation fichier ressources sous Mingw
    Par pyoda dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/01/2006, 17h10
  4. Accés BDD Access sous MinGW Studio
    Par pottiez dans le forum C++
    Réponses: 1
    Dernier message: 01/12/2005, 12h47
  5. [Debutant] Menu sous IE et fonction Javascript
    Par Pepito dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2005, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo