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 :

librairie array en c++ sous windows


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut librairie array en c++ sous windows
    Bonjour à tous
    Je dois travailler sur des fichiers fournis 3 en c++ et 1 makefile. A la fac (équipée Linux) tout vas bien, chez moi (Windows) rien ne vas plus

    Environnement : à la fac → emacs / chez moi → emacs
    Compilation : à la fac → via Terminal commande "make" dans repertoire dossier / chez moi → via Dos commande "g++ nomdufichier.cpp" dans repertoire dossier
    Débuggage : via Terminal ou Dos

    Je sais que des logiciels comme code::block sont plus pratique mais je veus coller au mieux au programme.

    J'ai télécharger MinGW-5.1.6 pour compiler via le DOS, car si je ne dit pas de bétises ce n'était pas possible sinon sous Window... je l'ai paramétrer en suivant les tutos :
    clic droit sur ordinateur / propriété / paramètre système avancé / variables environnement / variables système / path → modifier / j'ai ajouter ;C:\MinGW\bin (qui est bien le chemin installation de MinGw).
    Et là je croyez l’installation finie... mais en compilant simplement les fichiers fournis j'ai les messages d'erreur suivant :

    1) array : no such file or directory
    → La ligne en question est :#include <array>

    2) In function, 'std::ostream& operator<<<std::ostream&, std::list<T, std::allocator<_Chart> >>':
    → Pas de ligne indiquée

    3) error : ISO C++ forbids declaration of 'it' with no type
    → La ligne en question est :for (auto it=l.begin(); it !=l.end(); ++it )

    4) invalid type of argument of 'unary *'
    → La ligne en question est :flux<<*it<<" ";

    J'insiste, le fichier est rédigé par un prof d'info et il marche niquel à la fac, donc j'opterai pour un problème de librairie ou de configuration de MinGw, non ?
    Avez vous une idée pour m'aider, après plusieurs heures de recherche j'ai n'ai pas avancé d'un pouce

    Merci, pour votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Salut,

    si l'include de array ne marche pas, il doit falloir changer ton compilateur.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    MinGW-5.1.6 semble dater de 2009... <array> a été introduit dans la norme en 2011... récupère une version + récente de ton compilo!

    PS: il s'agit bien d'une appli Windows et pas DOS, même si elle est en mode console

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Merci pour ta réponse, j'aurais toute fois besoin de plus de précisions.

    Le compilateur c'est le Dos ou 'invite de commande' qui 'utilise les librairies MinGw pour compiler en C++ via la commande g++ (car Windows ne propose pas cet option par défaut visiblement). Donc selon toi le problème vient de MinGw ? Existe t'il d'autres librairie pour compiler du C/C++ sous Windows, sans prendre un compilateur genre comme celui de code::block ?
    Je débute en info, pardon si j'utilise de mauvais termes ou si mes questions sembles idiotes

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Pour la version de MinGw je vais chercher sa tout de suite, et je revient ensuite dire si c'est la cause du problème.. merci l'idée me semble bonne en tout cas

    Pour le type d'appli "Windows" ou 'Dos" je ne comprend pas la question. L'appli, pour moi c'est le fichier .exe, et le problème c'est justement de produire ce fichier... dsl je manque de vocabulaire <

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 307
    Points : 983
    Points
    983
    Par défaut
    Citation Envoyé par eljeronimooo Voir le message
    Pour la version de MinGw je vais chercher sa tout de suite, et je revient ensuite dire si c'est la cause du problème.. merci l'idée me semble bonne en tout cas

    Pour le type d'appli "Windows" ou 'Dos" je ne comprend pas la question. L'appli, pour moi c'est le fichier .exe, et le problème c'est justement de produire ce fichier... dsl je manque de vocabulaire <
    Pour ton compilo, je te conseille de prendre une version récente de mingw-w64, tu trouveras des gcc-5.2 qui est ok meme avec du c++ très récent.
    Pour ton appli .exe, je pense qu'il veut simplement dire que ton .exe ne tournera pas sous DOS, mais uniquement sous windows.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Malheureusement, après plusieurs essais j'ai toujours des erreurs en compilant.

    J'ai installer MinGW -w64 sur le site sérieux sourceforge.net, j'avais toujours des erreurs
    J'ai aussi installer mingw-get-setup (package base,c++...), et pas de résultats

    Je précise que j'ai bien mis à jour les variables environnement à chaque essais.
    Cela dit, les erreurs ont changé, il y en à plus

    Par contre la 1er erreur "array : no such file directory" est résolue mais l'erreur :
    In function, 'std::ostream& operator<<<std::ostream&, std::list<T, std::allocator<_Chart> >>': est toujours présente ainsi que beaucoup de :
    error : expected ';' before 'it'.

    Je suis sûr que vous m'avez mis sur la bonne voie mais je dois avoir raté quelque chose.
    Cela ne peut pas être SI COMPLIQUER de compiler sous Windows des fichiers qui fonctionnes niquel sous Linux

  8. #8
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Par contre la 1er erreur "array : no such file directory" est résolue mais l'erreur :
    In function, 'std::ostream& operator<<<std::ostream&, std::list<T, std::allocator<_Chart> >>': est toujours présente ainsi que beaucoup de :
    error : expected ';' before 'it'.
    Il manque des morceaux de code alors, car cette fonction est définie par l'utilisateur. Ou alors c'est à cause de l'erreur suivante sur l'itérateur (code dans la fonction, non ?).
    Vérifie qu'il ne manque pas d'includes et montre le code problématique.

    note: for (auto const & x : l) flux << x << " ";, c'est mieux.

    (L'erreur 3 est un copier-coller ou une erreur recopiée ? Parce que ça forme n'est pas très naturelle.)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Je suis absolument sûr du code en lui même, se sont des fichiers non modifiés fournis par un prof d'info. Et j'ai fais l'exercice sans soucis à la fac mais chez moi impossible de compiler, c'est bien les mêmes fichiers pourtant.
    Donc je joint tout le code quand même mais je c'est improbable que le problème vienne de là. (Il est parfaitement inutile, ce n'ai pas le problème)

    Merci pour la remarque "auto const" qui me sera utile pour la suite. Dès que j'aurais compiler et que je pourrai commencer mon exo

    L'erreur 3 est recopiée mais je crois pas avoir fais d'erreur sur la syntaxe ou sur la signification, l'orthographe c'est autre chose..

    Merci beaucoup pour vos réponses

    Le code :

    programmePrincipal.cpp
    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
    // Fichier dans lequel vous écrirez les expressions à évaluer
    #include "definitionsFonctions.cpp"
    #define EVAL(exp) cout << "Valeur de " << (#exp) <<" : "<< (exp) << endl
     
     
    int main()
    {
      srand(time(NULL));
      boolalpha(cout);
     
      cout << "\n=================================================================\n ";
     
      // Expressions à évaluer
      cout << "\n==== Prise en main =======\n";
      // commande pour évaluer l'expression 3+4
      EVAL( 3+4 );
      // A vous :
     
      cout << "\n=================================================================\n ";
      return 0;
    }
    definitionsFonctions.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Fichier dans lequel vous écrirez les fonctions que l'on vous demandera de définir
     
    #include "listesEtTableaux.cpp"
     
    // Fonction moyenne
    // Données: a : nombre, b : nombre
    // Résultat: Nombre, la moyenne de a et b
     
     
    float moyenne(float a, float b)
    {
      return (a+b)/2;
    }
    listesEtTableaux.cpp
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    // Définition des types Liste et Tableaux
    // NE PAS MODIFIER CE FICHIER
     
    #include <iostream>
    #include <array>
    #include <list>
    #include <vector>
    #include <cmath>
    using namespace std;
     
    #include<cassert>
     
     
    template<typename T> list<T> liVide()
    {
        list<T> l;
        return l;
    }
     
    template<typename T> bool estVide(list<T> l)
    {
        return l.empty();
    }
     
    template<typename T> T tete(list<T> l)
    {
        assert( !estVide(l));
        return *(l.begin());
    }
     
    template<typename T> list<T> queue(list<T> l)
    {
        assert( !estVide(l)) ;
        l.pop_front();
        return l;
    }
     
    template<typename T> list<T> cons(T v,list<T> l)
    {
        l.push_front(v);
        return l;
    }
     
    template<typename T> ostream& operator << (ostream& flux, list<T> l)
    {
      flux << "( ";
      for (auto it=l.begin(); it !=l.end(); ++it )
        {
          flux<<*it<<" ";
        }
      flux << ")";
      return flux;
    }
     
    list<int> liste(list<int> li)
    {
        return li;
    }
     
    template<typename T> int taille(vector<T> ta)
    {
        return ta.size();
    }
     
    vector<int> tableau(vector<int> tab)
    {
        return tab;
    }
     
     
    template<typename T> ostream& operator << (ostream& flux, vector<T> l)
    {
        flux << "[ ";
        for (auto it=l.begin(); it !=l.end(); ++it )
        {
            flux<<*it<<" ";
        }
        flux << "]";
        return flux;
    }
     
    void ecrPoly(vector<int> po)
    {
        bool prem;
        prem=true;
        for (size_t i=po.size()-1; i>0; i--)
        {
            if (po[i]!=0)
            {
                if (prem)
                {
                    prem = false;
                    if (po[i]!=1)
                    {
                        if (po[i]!=-1) cout << po[i];
                        else cout << "-";
                    }
                }
                else
                {
                    if (po[i]>0) cout << " + ";
                    else cout << " - ";
                    if (abs(po[i]) !=1) cout << abs(po[i]);
                }
                cout << " X";
                if (i>1) cout<<"^"<<i<<" ";
            }
        }
        if (prem) cout <<po[0];
        else
        {
            if (po[0]!=0)
            {
                if (po[0]>0) cout << " + ";
                else cout << " - ";
                cout << abs(po[0]);
     
            }
        }
        cout<< endl;
        return ;
    }
    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
     
    CC = g++
    CFLAGS = -Wall -pedantic -std=c++0x -c
     
    in101 : definitionsFonctions.o programmePrincipal.o listesEtTableaux.o
    	${CC} -o in101 programmePrincipal.o
     
    definitionsFonctions.o : definitionsFonctions.cpp
    	${CC} ${CFLAGS} definitionsFonctions.cpp
     
    programmePrincipal.o : programmePrincipal.cpp definitionsFonctions.cpp
    	${CC} ${CFLAGS} programmePrincipal.cpp
     
    listesEtTableaux.o : listesEtTableaux.cpp
    	${CC} ${CFLAGS}  listesEtTableaux.cpp

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Toutes ces copies et fonctions inutiles
    C'est bien, elle est implémentée, mais si tu n'as pas de header avec le prototype à inclure, ton main il saura jamais utiliser ce qui se trouve dans listesEtTableaux.cpp
    Ha non c'est pire, tu inclus un .cpp ... et ton code vient de ton super prof de fac ? wouhou..
    Ton compilo reconnait pas auto ?
    D'ailleurs je ne vois nulle part l'utilisation de cette fonction qui pose problème. Il est où le fichier qui utilise ça ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  11. #11
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    #include "definitionsFonctions.cpp"
    Change de fac !!!

    Ou alors, si tu t'oriente vers une carrière dans le développement informatique, prends tout de suite note de la grande suspicion de ce qui t'est enseigné et cours lire un cours récent sur le C++. Dans le monde professionnel, dans le monde libre, et même dans le monde des projets persos, quelqu'un qui code comme ça se fait fustiger, insulter, moquer, railler, et je manque de vocabulaire.
    -- Yankel Scialom

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    A noter que pour les fonctions "inutiles" ça peut se défendre d'un point de vue pédagogique (enseignement de la prog fonctionnelle). Après, pour le reste, c'est vrai que...

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Merci pour vos réponses.

    Comme le dit Aurelien, c'est du code "pédagogique" (fait pour être modifier par l'étudiant et pour explorer la puissance du C++ ... ) je sais bien qu'il y est "pourri" mais ce n'est pas la question. Le code n'est pas en cause car il marche très bien sur un poste Linux.

    Le problème c'est le compilateur, ou ma configuration de celui-ci...
    Auparavant l'un des message d'erreur disait "array: no such file or directory", un membre éclairé m'a conseillé de changer de version de MinGW et d'en prendre une postérieure à 2011. J'ai donc télécharger mingw-get-setup.exe sur sourceforge.net, installer MinGW (avec les pack c++,java...), ensuite j'ai modifier la variables système Path en ajoutant le chemin de MinGW/bin puis à la compil les erreurs ont changée, celle du "array: no..." à disparue.
    Parmi les nouvelles erreurs j'ai :error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

    Ce qui veux dire, si je ne m'abuse que mon compilo n'est toujours pas à la norme 2011, non ? Si oui, comment puis je accédé à ses options -std=c++11 et -std=gnu++11 car le compilateur MinGW "donc une fenêtre Dos" n'a pas d'interface, pas de Menu / Paramètres / Activer l'option "blabla" ?

    Sinon pouvez vous me dire quel sont les compilateurs vous utiliser, sous Windows 7 , 64 bits ? MinGW semble être LA RÉFÉRENCE quand même, je suis surpris d'avoir de tel désagrément

  14. #14
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    La première chose, si tu veux profiter des "nouveautés" apportées par la norme C++11 avec Gcc (g++ dans notre cas), c'est de veiller à utiliser le flag -std=c++11 (-std=c++14 si tu veux profiter des nouveautés apportées par la norme C++14).

    Sans cela, tu pourras avoir la dernière version de Gcc, tu compileras toujours en C++03

    La deuxième chose est de veiller à avoir un compilateur à jour : Gcc-4.9.xx si tu veux profiter de la norme C++11, Gcc-5.x.y si tu veux profiter de la norme C++14. Tu peux vérifier la version de ton compilateur en tapant simplement la commandedans l'invite de commandes

    Par exemple, la dernière ligne de la sortie occasionnée par cette commande de mon coté affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc version 5.1.0 (tdm64-1)
    Si tu as une ancienne version (ou si tu veux avoir la dernière), tu peux toujours aller sur le site TDM-gcc et prendre la dernière version que tu y trouves. C'est un site qui veille rester au plus proche des dernières versions aussi bien du compilateur et de la suite d'outils associés (gcc, binutils, gdb) que de mingw-w64 (la bibliothèque qui permet le port de ces outils sous windows, explication très simplifiée ).

    Selon le cas, tu devras peut-être envisager de
    1. virer ton dossier d'installation actuel à la main et
    2. adapter la variable PATH au nouveau chemin d'installation

    Note d'ailleurs qu'il n'est pas exclu, si tu as déjà installé la version la plus récente, qu'il suffise peut être d'adapter ta variable path, par exemple si la version indiquée par la commande que j'ai donnée plus haut ne correspond pas à la version de Gcc que tu crois avoir

    Enfin, il faut savoir que, dans mingw / mingw-w64, l'exécutable make a été renommé en mingw32-make pour d'obscure raisons d'incompatibilités avec MSYS (un émulateur linux simplifié à l'extrême).

    Dans l'invite de commandes, tu peux donc également utiliser tes Makefile en remplaçant la commade[CODE]make
    - OU OU OU -
    make -f dossier/vers/Makefile[/CODEque tu utilises à l'école par la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mingw32-make 
    -    OU    OU    OU    -
    mingw32-make -f dossier/vers/Makefile
    Comme il s'agit en réalité du même programme, tout devrait pouvoir aller de la même manière
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup, clair et bien expliquer

    En effet, mon compilo avait la version 4.8.1 je l'ai supprimée, j'ai télécharger tdm-gcc-5.1.0-3, puis installer "all package", et maj de la variable PATH.

    Vérification j'ai bien : gcc version 5.1.0 <tdm64-1>, mais je ne sais pas comment utiliser ou activer le "flag -std=c++14" ?? Avec une commande dos genre g++ -std=c++14 ?? Sur cette question Google n'est pas mon ami car l'anglais et moi...



    P.S.
    Et merci pour l'astuce du "make". J'avais trouvé une combine qui consite à créer un fichier "make.cmd" dans C:\MinGW\bin, et y mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @echo off
    mingw32-make %*
    Comme ça, il n'y à plus qu'a taper "make"

  16. #16
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Citation Envoyé par eljeronimooo Voir le message
    je ne sais pas comment utiliser ou activer le "flag -std=c++14" ?? Avec une commande dos genre g++ -std=c++14 ?
    Exactement. Et avec tu peux ajouter -Wall -pedantic et -Wextra

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Ok j'ai réussi à compiler grâce à votre aide

    Il y avait encore une l'erreur : 'time' fonction n'est pas déclarée...
    Sauf erreur de ma part : celle ci se trouve dans time.h ou ctime en c++, j'ai donc ajouter :
    Et là plus aucun problème tout marche parfaitement

    Il ne me reste qu'une double question :
    Pourquoi faut-il rajouter cet include sous Windows et pas sous Linux ?
    Existe t'il un autre moyen qui collerais au mieux à Linux (un moyen de ne pas écrire l'include) ?

    Merci pour votre aide, sujet 90 % résolu

  18. #18
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    Le mieux est d'inclure ctime.

    Pourquoi sous Linux ça fonctionne et pas sous Windows? Aucune idée.

    En trouvant dans GCC l'option pour voir les headers inclus, tu devrais avoir la réponse
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 307
    Points : 983
    Points
    983
    Par défaut
    Citation Envoyé par eljeronimooo Voir le message
    Il ne me reste qu'une double question :
    Pourquoi faut-il rajouter cet include sous Windows et pas sous Linux ?
    Existe t'il un autre moyen qui collerais au mieux à Linux (un moyen de ne pas écrire l'include) ?
    Normalement la fonction est définie dans <ctime> et donc ctime doit être inclus. Cependant, il arrive parfois selon les compilateurs que <ctime> soit inclus par ailleurs (un include qui en inclus un autre) et je donc cela compile. Je crois aussi que ce comportement n'empêche pas le compilateur d'être reconnu comme "standard", simplement le code lui ne l'est pas. Cela est génant pour écrire du code portable (puis qu'on a l'impression que tout marche bien et que cela compile), est-ce que quelqu'un a une solution pour ce problème (sans passer par une compilation sur différents systèmes) ?

  20. #20
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    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 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Oui: être consciencieux sur les includes.
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Linker une librairie visual avec g++ sous windows 7 64
    Par falcoman33 dans le forum C++/CLI
    Réponses: 11
    Dernier message: 06/05/2014, 07h01
  2. recherche de librairie/module Mysql freeradius sous windows
    Par bhrached dans le forum Installation
    Réponses: 0
    Dernier message: 17/04/2008, 18h18
  3. Installation de la librairie GD sous windows
    Par alizee971 dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 21/05/2006, 14h08
  4. [install librairie] sous windows -
    Par Mireyu_c dans le forum Déploiement/Installation
    Réponses: 2
    Dernier message: 21/03/2006, 09h23
  5. Portage d'une librairie linux sous windows
    Par sleg dans le forum C++
    Réponses: 22
    Dernier message: 31/05/2005, 22h21

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