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 :

Problème math.h malgré compilation avec -lm


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Problème math.h malgré compilation avec -lm
    bonjour,
    j'ai un probleme pour compiler mon programme sur ubuntu alors que ça marchait sur mac.
    le programme utilise math.h, j'ai donc inclu math.h et j'ai compilé le programme (avec un makefile)
    avec l'option -lm a la fin, mais rien a faire ça compile pas :/

    j'ai des erreurs du genre:

    undefined reference to `tanh'
    undefined reference to `log'
    undefined reference to `sinh'
    undefined reference to `sin'
    est ce que quelqu'un sait d'où vient le problème ?

    je vous met le makefile au cas ou:

    Code Makefile : 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
     
     
    projet: main.o Question_1.o Question_2.o Question_3.o
    	gcc -o projet main.o Question_1.o Question_2.o Question_3.o
     
     
    Question_1.o: Question_1.c Question_1.h
    	gcc -c Question_1.c -o Question_1.o -lm
     
    Question_2.o: Question_2.c Question_2.h
    	gcc -c Question_2.c -o Question_2.o -lm
     
     
    Question_3.o: Question_3.c Question_3.h
    	gcc -c Question_3.c -o Question_3.o -lm
     
    main.o: main.c Question_1.h Question_2.h Question_3.h
    	gcc -c main.c -o main.o -lm
     
    clean :
    	rm *.o

  2. #2
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Bonjour,
    utilise la balise [ CODE ] pour insérer ton code.
    L'option -lm doit se trouver sur la ligne de l'édition des liens qui crée le fichier exécutable projet →
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    projet: main.o Question_1.o Question_2.o Question_3.o
            gcc -o projet main.o Question_1.o Question_2.o Question_3.o -lm
    Elle est inutile quand tu crées les fichiers objets.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    salut, merci pour la réponse.

    j'ai rajouté le -lm sur la ligne d'edition pour "projet" et enlevé les autres, mais ça ne compile toujours pas. je viens de voir que j'ai aussi ces erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    recollect2: error: ld returned 1 exit status
    makefile:3: recipe for target 'projet' failed
    make: *** [projet] Error 1

  4. #4
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    et c'est tout ? pas de message avec des symboles non définis ?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    si il y'a toujour les mêmes erreurs qu'avant, mais j'avais pas fais gaffe a celle évoquées après
    en gros il ya:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    undefined reference to `tanh'
    undefined reference to `log'
    undefined reference to `sinh'
    undefined reference to `sin'
    undefined reference to `log10'
    undefined reference to `cabs'
    collect2: error: ld returned 1 exit status
    makefile:3: recipe for target 'projet' failed
    make: *** [projet] Error 1

  6. #6
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    histoire que ce soit clair, poste ton makefile en utilisant la balise code, et poste aussi la totalité des messages d'erreurs, toujours encadré avec la balise code.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    le makefile:
    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
     
    projet: main.o Question_1.o Question_2.o Question_3.o
    	gcc -o projet main.o Question_1.o Question_2.o Question_3.o -lm
     
     
    Question_1.o: Question_1.c Question_1.h
    	gcc -c Question_1.c -o Question_1.o 
     
    Question_2.o: Question_2.c Question_2.h
    	gcc -c Question_2.c -o Question_2.o 
     
     
    Question_3.o: Question_3.c Question_3.h
    	gcc -c Question_3.c -o Question_3.o 
     
    main.o: main.c Question_1.h Question_2.h Question_3.h
    	gcc -c main.c -o main.o 
     
    clean :
    	rm *.o

    le erreurs:
    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
    Question_2.o: In function `coefficients_g':
    Question_2.c:(.text+0x8a): undefined reference to `tanh'
    Question_2.c:(.text+0xa0): undefined reference to `log'
    Question_2.c:(.text+0xd1): undefined reference to `sinh'
    Question_2.c:(.text+0x11e): undefined reference to `sin'
    Question_2.c:(.text+0x164): undefined reference to `sin'
    Question_2.c:(.text+0x18f): undefined reference to `sin'
    Question_3.o: In function `Calcul_Coefficient_Reflexion':
    Question_3.c:(.text+0x8fd): undefined reference to `cabs'
    Question_3.c:(.text+0x91c): undefined reference to `cabs'
    Question_3.c:(.text+0x953): undefined reference to `log10'
    Question_3.o: In function `Calcul_Coefficient_Transmission':
    Question_3.c:(.text+0xa95): undefined reference to `cabs'
    Question_3.c:(.text+0xabf): undefined reference to `cabs'
    Question_3.c:(.text+0xb2b): undefined reference to `log10'
    collect2: error: ld returned 1 exit status
    makefile:3: recipe for target 'projet' failed
    make: *** [projet] Error 1

  8. #8
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Tu as fait un make clean avant ?

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    je viens de le faire et de refaire make, rien n'a changé

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Bonjour,

    Ta clause « clean: » efface les « *.o » mais pas le fichier principal « projet » qui n'est pas suffixé de la sorte. Il faudrait lui dire de l'effacer aussi mais comme les dépendances impliquent les fichiers *.o, il sera quand même régénéré (et les messages d'erreur en témoignent).

    Par contre, ton problème vient d'une toute petite subtilité du compilateur, nécessaire pour résoudre certains conflits, et détaillée dans la man page de gcc :

    Citation Envoyé par man gcc
    -lbibliothèque
    -l bibliothèque
    Rechercher la bibliothèque nommée bibliothèque lors de l'édition des liens. (La seconde alternative avec la bibliothèque spécifiée comme argument séparé n'est destinée
    qu'à la conformité POSIX et n'est pas recommandée.)

    L'ordre d'écriture de cette option dans la ligne de commandes est important ; l'éditeur de liens recherche et traite les bibliothèques et les fichiers objets dans
    l'ordre dans lequel ils sont spécifiés. Donc, foo.o -lz bar.o recherche la bibliothèque z après le fichier foo.o mais avant bar.o. Si bar.o se réfère à des fonctions de
    z, ces fonctions ne peuvent être chargées.

    Essaie d'écrire ta première règle de la sorte :

    Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    projet: main.o Question_1.o Question_2.o Question_3.o
    	gcc -o projet -lm main.o Question_1.o Question_2.o Question_3.o

    … en plaçant « -lm » avant tes fichiers *.o, donc.

  11. #11
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Oui clairement il y a un souci quelque part. Je conseille de réduire ton exemple au minimum. Un seul fichier avec un main qui a le souci. La version du compilateur, le code qui pose problème etc.

    Je pense que c'est une question d'ordre du -l mais au cas où, pense à réduire ton exemple

  12. #12
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Et tant qu'on y est, quitte à corriger la compilation, ajoute -Wall -Wextra à chaque compilation d'un .o (gcc -c -Wall -Wextra bidule.c)
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  13. #13
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par ternel Voir le message
    Et tant qu'on y est, quitte à corriger la compilation, ajoute -Wall -Wextra à chaque compilation d'un .o (gcc -c -Wall -Wextra bidule.c)
    Si vraiment on est au point d'ajouter des flags de compilation, ajoutons -O3

  14. #14
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Pas faux. Mais la différence entre l'activation des warnings et l'optimisation, c'est que les premiers peuvent révéler des erreurs.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  15. #15
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par ternel Voir le message
    Pas faux. Mais la différence entre l'activation des warnings et l'optimisation, c'est que les premiers peuvent révéler des erreurs.
    On quitte dangereusement le sujet de base mais j'ai déjà remarqué qu'il y aura plus de warnings en O3 qu'en O0. Il se trouve que souvent les passes d'optimisation vont remarquer plus de choses que tu ne verras pas par défaut. Parfois on peut discuter de O3 et on peut mettre O2 à la place
    Jc

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Essaie d'écrire ta première règle de la sorte :

    Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    projet: main.o Question_1.o Question_2.o Question_3.o
    	gcc -o projet -lm main.o Question_1.o Question_2.o Question_3.o

    … en plaçant « -lm » avant tes fichiers *.o, donc.
    Bonjour

    Moi je viens de tenter ceci
    Fichier "essai.c"
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
    #include <math.h>
     
    int main()
    {
    	printf("%f\n", sqrt(4.0));
    }

    Compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gcc -c essai.c
    gcc -o essai essai.o -lm
    Et ça compile sans souci même avec le "-lm" placé après...

    D'ailleurs je viens de recréer un exemple initial minimaliste...
    essai.c
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <math.h>
    #include "question1.h"
    #include "question2.h"
    #include "question3.h"
     
    int main()
    {
    	printf("%f\n", question1(4.0));
    	printf("%f\n", question2(4.0));
    	printf("%f\n", question3(4.0));
    }

    question1.h
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <math.h>
     
    double question1(double d);

    question1.c
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>
    #include <math.h>
    #include "question1.h"
     
    double question1(double d)
    {
    	return log10(d);
    }

    question2.h
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <math.h>
     
    double question2(double d);

    question2.c
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>
    #include <math.h>
    #include "question2.h"
     
    double question2(double d)
    {
    	return log10(d) * 2.0;
    }

    question3.h
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <math.h>
     
    double question3(double d);

    question3.c
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>
    #include <math.h>
    #include "question3.h"
     
    double question3(double d)
    {
    	return log10(d) * 3.0;
    }

    Makefile
    Code c : 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
    essai: essai.o question1.o question2.o question3.o
    	gcc -o essai essai.o question1.o question2.o question3.o -lm
     
     
    question1.o: question1.c question1.h
    	gcc -c question1.c -o question1.o 
     
    question2.o: question2.c question2.h
    	gcc -c question2.c -o question2.o 
     
     
    question3.o: question3.c question3.h
    	gcc -c question3.c -o question3.o 
     
    essai.o: essai.c question1.h question2.h question3.h
    	gcc -c essai.c -o essai.o 
     
    clean :
    	rm *.o

    Et tout a compilé sans souci.. (PS sur un Linux avec gcc 4.9.2...)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Maintenant continue à ajouter au code pour arriver à ton code qui pose un souci. Quelque part, tu fait quelque chose de faux

  18. #18
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    Bonjour peut etre que tu n'as pas le chemin des librairies dans ta variable d'environnement LD_LIBRARY_PATH (ca se rajoute en faisant:
    export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:autre chemin de libs )
    et sinon tu peux le faire en passant le flag -L"chemin de la lib" avant ton -lm à gcc....

  19. #19
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 460
    Points : 6 064
    Points
    6 064
    Par défaut
    Citation Envoyé par fearyourself Voir le message
    j'ai déjà remarqué qu'il y aura plus de warnings en O3 qu'en O0. Il se trouve que souvent les passes d'optimisation vont remarquer plus de choses que tu ne verras pas par défaut.
    C'est exact. D'ailleurs, la documentation de GCC indique explicitement quand un avertissement dépend des optimisations.
    Par exemple, dans la documentation de -Wuninitialized dans GCC 6.3.0, on peut lire :
    « Because these warnings depend on optimization, the exact variables or elements for which there are warnings depends on the precise optimization options and version of GCC used. »

    Et voici un exemple concret :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <iostream>
     
    int main()
    {
        int tab[3] = {0, 1, 2};
        std::cout << tab[3];
        return 0;
    }
    Avec seulement l'option -Wall (qui inclut -Wuninitialized), on n'a aucun avertissement.
    Par contre, si on ajoute aussi -O1, on a l'avertissement :
    « warning: ‘tab[3]’ is used uninitialized in this function [-Wuninitialized] ».

Discussions similaires

  1. Probleme ,ne peut pas compiler avec java
    Par pandorz dans le forum Java ME
    Réponses: 0
    Dernier message: 01/04/2009, 21h28
  2. Réponses: 6
    Dernier message: 28/03/2007, 20h40
  3. probleme lors de la compilation avec javac
    Par Th3dJoBiN dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2006, 00h16
  4. Réponses: 3
    Dernier message: 08/04/2004, 14h40
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 14h43

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