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

Eclipse C & C++ Discussion :

Réglage pour inclure par défaut les lib std [Débutant(e)]


Sujet :

Eclipse C & C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 167
    Points : 69
    Points
    69
    Par défaut Réglage pour inclure par défaut les lib std
    Bonjour,

    Je suis passé sous éclipse parce que j'en ai besoin pour faire du Qt proprement et comme tout noob avec ce super truc pour programmer... on est perdu tellement les choix d'options son grand.
    J'ai :
    _un projet par défaut C++ où tout marche normalement ;
    _un projet Qt par défaut ou sa marche aussi
    _un projet Qt qui veut intégrer des headers perso C++ avec utilisation de la std:: qui me dit que tous les trucs std sont undefined (min, max, abs, NULL, etc)
    _compilateur : MinGW + g++

    identification du pb : par défaut, le compilo connait pas std:: ; le répertoire de MinGW semble les contenir...

    tentative de solution : rajouter dans les path des propriétés du compilo du projet les chemins d'accès ... mais ça n'arrange pas les choses.

    Est-ce que qq1 peut venir à mon secours
    Merci

  2. #2
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    salut,

    tu peut nous montrer le code ou y'a l'erreur ?

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 167
    Points : 69
    Points
    69
    Par défaut
    ouais :

    Donc main de base pour une appli Qt avec integration eclipse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include "geo_morph.h"
     
    #include <QtGui>
    #include <QApplication>
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        Geo_Morph w;
        w.show();
        a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
        return a.exec();
    }
    Je rajoute un header dans le projet : Feuillet.h
    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
    #ifndef FEUILLET_H_
    #define FEUILLET_H_
     
    #include <QWidget>
     
    class Feuillet : public QWidget
    {
        Q_OBJECT
     
    public:
    	Feuillet ( QWidget * parent = 0);
     
    public slots:
     
    private slots:
     
    signals:
     
    protected:
        void paintEvent(QPaintEvent *event);
     
    private:
     
    public:
     
    };
     
     
    #endif //FEUILLET_H_
    et son .cpp parce que des méthodes déclarées mais non définies... il aime pas!! C'est con tout de même!
    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
    #include <QPaintEvent>
    #include <QPainter>
     
    #include "Feuillet.h"
     
    Feuillet::Feuillet ( QWidget * parent ): QWidget(parent)
      {
        setPalette(QPalette(QColor(250, 250, 200)));
        setAutoFillBackground(true);
        //seg.debut=0;
      }
     
    void Feuillet::paintEvent ( QPaintEvent * event )
      {
    		//creation d'un QPainter
    		//QPen : aucun contour
    		//QBrush : aucun remplissage
    		QPainter painter(this);
     
    		//On definie au QPainter un stylo rouge de taille 4
    		QPen pen;
    		pen.setColor (Qt::red);
    		pen.setWidth (4);
    		painter.setPen(pen);
     
    		//On dessine un rectangle
    		//QPen : rouge de taille 4
    		//QBrush : aucun remplissage
    		painter.drawRect (10, 10, 80, 80);
      }
    Tout ça, c'est des copié collé du tuto et ça compile.

    Je rajoute un #include "GSegment.h" dans le feuillet.h ... et déjà, si je sépare pas la définition de la déclaration... il me dit que mes méthodes sont déjà définies (pourtant ça passe très très bien avec un projet C++). donc bon, je sépare en header et source... et ça disparaît (cool mais chiant parfois!)
    ... et là... il reconnaît pas les min, max, NULL, abs, etc. de la stl!!! ... que j'utilise bien sûr dans GSegment.
    Faut que je rajoute les fichiers de la librairies à la main dans le projet ou je peux régler ça qq part dans les propriétés du projet?

    RQ : si définition non présente, ça fait cette erreur du make :
    make: *** [release] Error 2
    ...mais je l'ai plus!

    ...j'ai testé avec ce fameux fichier.h ... épuré :
    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
    #ifndef GSegment_H
    #define GSegment_H
     
    using std::max;
    using std::min;
     
    //Considéré réel dans le sens positif.
    struct GSegment
    {
     int debut;
     int fin;
     
     GSegment(int first=0, int second=-1)
       {
        debut=first;
        fin=second;
       }
     
    };
     
    #endif
    ...ben, ya moins d'erreur vu que j'utilise plus les min, max forcément mais le using... il passe toujours pas, le pb est bien là!

    La console me dit :
    mingw32-make
    mingw32-make -f Makefile.Release
    mingw32-make[1]: Entering directory `C:/INFORMATIQUE/eclipse/WorkFILE/Geo_Morph'
    g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/INFORMATIQUE/Qt/4.2.3/include/QtCore" -I"C:/INFORMATIQUE/Qt/4.2.3/include/QtCore" -I"C:/INFORMATIQUE/Qt/4.2.3/include/QtGui" -I"C:/INFORMATIQUE/Qt/4.2.3/include/QtGui" -I"C:/INFORMATIQUE/Qt/4.2.3/include" -I"C:/INFORMATIQUE/Qt/4.2.3/include/ActiveQt" -I"release" -I"." -I"..\..\..\Qt\4.2.3\mkspecs\win32-g++" -o release\GSegment.o GSegment.cpp
    In file included from GSegment.cpp:1:
    GSegment.h:4: error: `std::max' has not been declared
    GSegment.h:5: error: `std::min' has not been declared
    mingw32-make[1]: *** [release\GSegment.o] Error 1
    mingw32-make[1]: Leaving directory `C:/INFORMATIQUE/eclipse/WorkFILE/Geo_Morph'
    mingw32-make: *** [release] Error 2

  4. #4
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    t'aurais pas oublié #include <algorithm> dans ton GSegment.h ?

    Eclipse ne fait qu'appeler gcc (il génère un makefile en fait), s'il y a des erreurs c'est que ton code n'est pas bon...

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 167
    Points : 69
    Points
    69
    Par défaut
    bah normalement, j'en ai pas besoin! Sous DEvC++, Eclipse en mode c++, ça passe comme une lettre à la poste!
    c'est dans algorithm le min, max, NULL, abs?!

    EDIT... ah bah oui!!
    bah merci bcp!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/10/2013, 20h09
  2. [2.x] [Form] Sélectionner par défaut les entités d'un formulaire ?
    Par vinsse2001 dans le forum Symfony
    Réponses: 1
    Dernier message: 02/04/2013, 14h45
  3. Remettre par défaut les préférences
    Par saffir dans le forum WinDev
    Réponses: 10
    Dernier message: 06/05/2009, 10h37
  4. Ouvrir par défaut les TreeItem
    Par dush_ dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 22/02/2009, 19h18
  5. Réponses: 3
    Dernier message: 25/05/2006, 19h50

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