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 :

Problème de récupération d'une application wxGlade


Sujet :

Eclipse C & C++

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Problème de récupération d'une application wxGlade
    Bonjour à tous,
    Désirant essayer le développement de petits programmes ( c++) avec fenêtres graphiques je viens d'installer sur mon système windows 2000 : Eclipse SDK 3.2
    Le plugin CDT 3.1 ( pour le c++)
    MinGW 5.0 + MSYS 1.0.11 ( pour la compilation
    wxWidgets 2.8.4 comme bibliothèque
    J'ai trouvé un tuto qui expliquait comment installer le tout et grâce à ce même tuto j'ai ( en faisant copier/ coller) pu compiler un petit prog qui ouvre une fenêtre simple lors du lancement de l'exécution.
    A la lecture du .cpp j'ai trouvé que l'utilisation de wxWidgets était un peu confuse pour moi et après des recherches sur le NET j'ai lu un tuto qui proposait de commencer le développement avec wxWidgets en utilisant un RAD " wxGlades". j'ai donc intallé wxGlades 0.5 et pour comparer avec le premier programme .cpp ci-dessu j'ai à l'aide de wxGlade créé une fenêtre identique. Puis j'ai récupéré les fichiers générés pour les intégrer dans un nouveau projet créé avec l'IDE ECLIPSE.

    le fichier .h

    // -*- C++ -*- generated by wxGlade 0.5 on Fri Aug 17 20:33:12 2007
    #include "wx/wx.h"
    #include "wx/image.h"
    // begin wxGlade: ::dependencies
    // end wxGlade

    #ifndef ESSAI2_H
    #define ESSAI2_H

    class MyFrame: public wxFrame {
    public:
    // begin wxGlade: MyFrame::ids
    // end wxGlade
    MyFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE);
    private:
    // begin wxGlade: MyFrame::methods
    void set_properties();
    void do_layout();
    // end wxGlade
    protected:
    // begin wxGlade: MyFrame::attributes
    wxMenuBar* frame_1_menubar;
    wxStatusBar* frame_1_statusbar;
    // end wxGlade
    }; // wxGlade: end class

    #endif // ESSAI2_H

    le fichier.cpp


    // -*- C++ -*- generated by wxGlade 0.5 on Fri Aug 17 20:33:12 2007
    #include "Essai2.h"

    MyFrame::MyFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
    wxFrame(parent, id, title, pos, size, wxDEFAULT_FRAME_STYLE)
    {
    // begin wxGlade: MyFrame::MyFrame
    frame_1_menubar = new wxMenuBar();
    SetMenuBar(frame_1_menubar);
    wxMenu* Fichier = new wxMenu();
    frame_1_menubar->Append(Fichier, wxT("Fichier"));
    wxMenu* Aide = new wxMenu();
    frame_1_menubar->Append(Aide, wxT("Aide"));
    frame_1_statusbar = CreateStatusBar(1, 0);
    set_properties();
    do_layout();
    // end wxGlade
    }

    void MyFrame::set_properties()
    {
    // begin wxGlade: MyFrame::set_properties
    SetTitle(wxT("Essai fenêtre"));
    int frame_1_statusbar_widths[] = { -1 };
    frame_1_statusbar->SetStatusWidths(1, frame_1_statusbar_widths);
    const wxString frame_1_statusbar_fields[] = {
    wxT("Essai réussi")
    };
    for(int i = 0; i < frame_1_statusbar->GetFieldsCount(); ++i) {
    frame_1_statusbar->SetStatusText(frame_1_statusbar_fields[i], i);
    }
    // end wxGlade
    }

    void MyFrame::do_layout()
    {
    // begin wxGlade: MyFrame::do_layout
    wxBoxSizer* sizer_1 = new wxBoxSizer(wxVERTICAL);
    SetSizer(sizer_1);
    sizer_1->Fit(this);
    Layout();
    // end wxGlade
    }



    J'ai créé le fichier makfile : ( en recopiant bêtement je dois avouer le fichier que j'ai utilisé dans la création du premier programme mais en changeant le nom de l'exécutable à créer)


    # Détermine le nom du fichier exécutable.
    EXEC = Essai2.exe
    # Détermine la liste des fichiers sources.
    SRCS = $(wildcard *.cpp)
    # Détermine le nom du fichier qui contiendra
    # les dépendances.
    DEPFILE = .depend
    # Construit la liste des fichiers temporaires à partir
    # de la liste des fichiers sources.
    OBJS = $(SRCS:%.cpp=%.o)
    # wxWidgets variables
    SCRDIR = j:/Programmation/eclipse/wxWidgets-2.8.4/
    BUILDDIR = j:/Programmation/eclipse/wxWidgets-2.8.4/build-debug/
    INCLUDEDIR = j:/Programmation/eclipse/wxWidgets-2.8.4/include/
    CPPFLAGS = -DNO_GCC_PRAGMA -D__WXDEBUG__ \
    -I${BUILDDIR}lib/wx/include/msw-ansi-debug-static-2.8 \
    -I${SCRDIR}/include
    CXXFLAGS = -ggdb -O0 -mthreads -Wall -Wno-ctor-dtor-privacy
    LIBDIRNAME = $(BUILDDIR)lib
    LDFLAGS_GUI = -mwindows
    SAMPLES_RPATH_FLAG =
    WXDEBUGFLAG = d
    WX_LIB_FLAVOUR =
    WX_RELEASE = 2.8
    HOST_SUFFIX =
    TOOLKIT_LOWERCASE = msw
    TOOLKIT_VERSION =
    PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
    COND_MONOLITHIC_0___WXLIB_CORE_p_PART1 = \
    -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)
    COND_MONOLITHIC_0___WXLIB_CORE_p_PART2 = \
    $(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX)
    COND_MONOLITHIC_0___WXLIB_CORE_p = \
    $(COND_MONOLITHIC_0___WXLIB_CORE_p_PART1)$(COND_MONOLITHIC_0___WXLIB_CORE_p_PART2)
    __WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p)
    COND_MONOLITHIC_0___WXLIB_BASE_p_PART1 = \
    -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)
    COND_MONOLITHIC_0___WXLIB_BASE_p_PART2 = \
    $(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
    COND_MONOLITHIC_0___WXLIB_BASE_p = \
    $(COND_MONOLITHIC_0___WXLIB_BASE_p_PART1)$(COND_MONOLITHIC_0___WXLIB_BASE_p_PART2)
    __WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p)
    __LIB_TIFF_p = -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
    __LIB_JPEG_p = -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
    __LIB_PNG_p = -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
    __LIB_ZLIB_p = -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
    COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = \
    -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
    __LIB_REGEX_p = $(COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p)
    __LIB_EXPAT_p = -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
    EXTRALIBS = -mthreads -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32
    EXTRALIBS_FOR_BASE = $(EXTRALIBS)
    EXTRALIBS_GUI =
    EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI)
    # Cette règle correspond à la règles par défaut.
    all: $(DEPFILE) $(EXEC)
    # Cette règle supprime tous les fichiers temporaires.
    clean:
    $(RM) *~ *.o \#*
    # Cette règle supprime tous les fichiers temporaires,
    # l'exécutable et le fichier de dépendance.
    cleanall: clean
    $(RM) $(EXEC) $(DEPEND_FILE)
    # Cette règle créé, à proprement parlé, l'exécutable
    # $(EXEC).
    $(EXEC): $(OBJS)
    g++ $(OBJS) -o $(EXEC) -L $(LIBDIRNAME) \
    $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) \
    $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) \
    $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) \
    $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) \
    $(EXTRALIBS_FOR_BASE) $(EXTRALIBS_FOR_GUI)
    # Cette règle créé un fichier de dépendances, $(DEPFILE),
    # pour les fichiers contenus dans $(SRCS).
    $(DEPFILE): $(SRCS)
    g++ -MM -I $(INCLUDEDIR) $(CPPFLAGS) $(CXXFLAGS) $(SRCS) > $(DEPFILE)
    # Insère les dépendances générées par la règle $(DEPFILE).
    -include $(DEPFILE)

    et j'ai lancé la compilation mais je me retrouve avec l'erreur suivante:


    mingw32-make -f makefile all
    g++ Essai2.o -o Essai2.exe -L j:/Programmation/eclipse/wxWidgets-2.8.4/build-debug/lib \
    -mwindows \
    -lwx_mswd_core-2.8 -lwx_based-2.8 \
    -lwxtiffd-2.8 -lwxjpegd-2.8 -lwxpngd-2.8 \
    -lwxzlibd-2.8 -lwxregexd-2.8 -lwxexpatd-2.8 \
    -mthreads -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32
    J:/Programmation/eclipse/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../libmingw32.a(main.o):main.c.text+0x106): undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status
    mingw32-make: *** [Essai2.exe] Error 1

    Si vous pouviez m'aider cela serai super ! mais risque hélas de provoquer d'autres questions de ma part car je ne fai que de débuter et il faudra certainnement m'expliquer en détail le contenu de ce fameux fichier makefile au quel je ne comprends pas grand chose
    D' avance merci de votre gentillesse. JP

  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
    Bonjour,

    première remarque : bienvenue sur le forum, tu devrais lire les règles, afin d'écrire des messages corrects

    seconde remarque : il faut toujours utiliser google pour chercher un peu

    troisième remarque : eclipse c'est juste un IDE. si t'es débutant tu dois commencer par compiler ton projet en ligne de commande pour comprendre quelle erreur vient du code, et quelle erreur vient de l'IDE. dans ton cas, cela vient du code, donc il faut poser la question sur le forum correspondant (c++ ou wxwidgets). commence par des exemples simple de c, c++, des exemples simple de makefile, et des exemples simples de wxwidget

    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
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 75

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    bonjour et merci à "Mamelouk" d'avoir lu mon message
    Je suis vraiment désolé d'être aussi mauvais pour avoir posé une telle question et d'avoir dérangé de façon inutile ce forum. Car avant de poster ce message j'ai bien évidemment recherché sur le net.
    Merci de bien vouloir m'indiquer comment on peut se désinscrire de ce forum ce qui m'évittera par la suite d'être tenté de poser de mauvaises questions au mauvais endroit. Bonne continuation à vous les experts.

  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
    Citation Envoyé par DIP²technique Voir le message
    bonjour et merci à "Mamelouk" d'avoir lu mon message
    mais je t'en prie, "DIP²technique"

    Citation Envoyé par DIP²technique Voir le message
    Je suis vraiment désolé d'être aussi mauvais pour avoir posé une telle question et d'avoir dérangé de façon inutile ce forum.
    ca arrive à tout le monde

    Citation Envoyé par DIP²technique Voir le message
    Car avant de poster ce message j'ai bien évidemment recherché sur le net.
    arf, désolé j'imagine que tu as du mal cherché... car le premier lien m'a donné la réponse...

    Citation Envoyé par DIP²technique Voir le message
    Merci de bien vouloir m'indiquer comment on peut se désinscrire de ce forum ce qui m'évittera par la suite d'être tenté de poser de mauvaises questions au mauvais endroit. Bonne continuation à vous les experts.
    je ne suis un expert en rien du tout
    par contre, tu as mal pris mon message, de manière évidente, je te conseille de lire cet article, section "Comment réagir face à l'impolitesse" (ainsi que le reste de l'article), qui t'éclairera sur "pourquoi mon message te semble agressif", et pourquoi "ton message m'a l'air dénué de toute recherche et tout effort préalable".

    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.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/06/2006, 17h19
  2. [C#] problème de fermeture d'une application
    Par padodanle51 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/05/2006, 14h07
  3. Problème d'accès depuis une application
    Par Cédric_07 dans le forum Access
    Réponses: 5
    Dernier message: 24/05/2006, 10h21
  4. [MySQL] Problème de tri pour une application
    Par nanor21 dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 11/05/2006, 19h08
  5. Problème de récupération dans une map
    Par sacdenoeud dans le forum C++
    Réponses: 7
    Dernier message: 26/03/2006, 08h40

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