probleme mit wigets :S



  • si 😃

    ich han ein paar problemchen mit meinem neuen widget denn wen ich auf neues projekt in codeblocks(ide) gehe und den code einfüge,erscheint dass eine headerfile fehlt,zbsp. wx.h,ich habe die .h in das verzeichnis wo meine .cpp datei liegt hinkopiert,aber dann erscheint ein andres ,dass etwas andres fehlt.

    in der install versteh ich eigentlich null 🙄

    sogar hab ich verschucht die include von wxwidgets 2.6.3 den include ordner in den von codeblocks include ordner reinkopieren,aber trodzde one erfolg 😞

    vielleicht chönnt mi bitte eina helfä 😃


  • Mod

    Unter Settings -> Compiler -> "Directories" Reiter musst du das Include Verzeichnis
    von wxWidgets angeben, und das Verzeichnis in dem du deine wx-libs hast unter Linker.



  • Stell den Pfad zu den wx Headern und Bibliotheken in den Compiler optionen ein.

    Oder so: http://www.wxwidgets.org/wiki/index.php/CodeBlocks_Setup_Guide



  • phlox81 schrieb:

    Unter Settings -> Compiler -> "Directories" Reiter musst du das Include Verzeichnis
    von wxWidgets angeben, und das Verzeichnis in dem du deine wx-libs hast unter Linker.

    bei mir ist dann folgendes rausgekommen:

    Execution of 'mingw32-g++.exe -IC:\Programme\CodeBlocks\include -IC:\Programme\wxWidgets-2.6.3\ -c index.cpp -o index.o' in 'C:\Dokumente und Einstellungen\Daniel\Desktop\C++' failed.

    also hab ich was falsch gemacht...
    so hab ich es gemacht:

    Linker: C:\Programme\wxWidgets-2.6.3\include
    Directories: C:\Programme\wxWidgets-2.6.3

    stimmt das so?

    coder


  • Mod

    Nein, der Linker braucht das lib verzeichnis, include ist include...
    also $wxdir/include unter die includes bei C::B, und beim Linker das selbe.



  • phlox81 schrieb:

    Nein, der Linker braucht das lib verzeichnis, include ist include...
    also $wxdir/include unter die includes bei C::B, und beim Linker das selbe.

    sry,aber ich hatte gefragt,wie das aussehen sollte,sorry 😞

    Wie soll ich das nun machen?
    Also Codeblocks ist hier:

    C:\Programme\CodeBlocks -> Codeblocksverzeichnis
    C:\wxWidgets-2.6.3 -> wxwidgets

    und wie soll ich aus diesen nun wo was reinschreiben?

    mfg coder



  • codeer_in_hosen schrieb:

    phlox81 schrieb:

    Nein, der Linker braucht das lib verzeichnis, include ist include...
    also $wxdir/include unter die includes bei C::B, und beim Linker das selbe.

    sry,aber ich hatte gefragt,wie das aussehen sollte,sorry 😞

    Wie soll ich das nun machen?
    Also Codeblocks ist hier:

    C:\Programme\CodeBlocks -> Codeblocksverzeichnis
    C:\wxWidgets-2.6.3 -> wxwidgets

    und wie soll ich aus diesen nun wo was reinschreiben?

    mfg coder

    kann mir bitte jemand helfen?



  • Wo ist das Problem? Du suchst die Pfade zum "lib" und "include" Verzeichnis im wxWidgets Verzeichnis heraus und trägst sie in die entsprechenden Felder bei Code::Blocks ein.



  • GPC schrieb:

    Wo ist das Problem? Du suchst die Pfade zum "lib" und "include" Verzeichnis im wxWidgets Verzeichnis heraus und trägst sie in die entsprechenden Felder bei Code::Blocks ein.

    hallo und dankeschön 😉
    also ich habe schon folgendes gemacht,leider aber noch immer ohne nix:

    C:\wxWidgets-2.6.3\lib -> linker
    C:\wxWidgets-2.6.3\include -> Directionerys

    und es geht noch immer nicht 😡

    was nun?



  • also vielleicht liegt es an der datei:

    #include "wx/wx.h"
    
    // Deklariert
    class MyApp : public wxApp
    {
    public:
        // C
        virtual bool OnInit();
    };
    
    // Deklariert das Hauptframe
    class MyFrame : public wxFrame
    {
    public:
        // Konstruktor
        MyFrame(const wxString& title);
    
    };
    
    //..
    DECLARE_APP(MyApp)
    
    // MyApp-Objekt erstellen
    IMPLEMENT_APP(MyApp)
    
    // Code
    bool MyApp::OnInit()
    {
        // Erstelle Hauptfenster
        MyFrame *frame = new MyFrame(wxT("eine einfache wxWidgets-Anwendung"));
    
        //Hauptfenster
        frame->Show(true);
    
        //Ereignisschleife
        return true;
    }
    
    MyFrame::MyFrame(const wxString& title)
           : wxFrame(NULL, wxID_ANY, title)
    {
    
        // gg status
        CreateStatusBar(2);
    
        SetStatusText(wxT("Willkommen zu wxWidgets!"));
        SetStatusText(wxT("einem OpenSource-Framework"),1);
    }
    


  • coder_in_hosen schrieb:

    was nun?

    Gib mal die Ausgabe des Compilers her... "funktioniert nicht" ist etwas unpräzise.

    Ach ja, das wxWidgets include-Verzeichnis hast du sicher bei "include" in Code::Blocks eingetragen (und nicht in den allgemeinen Directories)?



  • GPC schrieb:

    coder_in_hosen schrieb:

    was nun?

    Gib mal die Ausgabe des Compilers her... "funktioniert nicht" ist etwas unpräzise.

    Fehlermeldung:

    Switching to target: default
    Compiling: index.cpp
    cc1plus.exe: wx_pch.h: No such file or directory
    index.cpp:1:19: wx/wx.h: No such file or directory
    index.cpp:5: error: expected class-name before '{' token
    index.cpp:13: error: expected class-name before '{' token
    index.cpp:16: error: expected ,' or...' before '&' token
    index.cpp:16: error: ISO C++ forbids declaration of wxString' with no type index.cpp:24: error: expected constructor, destructor, or type conversion before "IMPLEMENT_APP" index.cpp:24: error: expected,' or ;' before "IMPLEMENT_APP" index.cpp:39: error: expected,' or ...' before '&' token index.cpp:40: error: ISO C++ forbids declaration ofwxString' with no type
    index.cpp: In constructor MyFrame::MyFrame(int)': index.cpp:40: error: class \MyFrame' does not have any field named `wxFrame'
    index.cpp:40: error: NULL' undeclared (first use this function) index.cpp:40: error: (Each undeclared identifier is reported only once for each function it appears in.) index.cpp:40: error:wxID_ANY' undeclared (first use this function)
    index.cpp:40: error: title' undeclared (first use this function) index.cpp:44: error:CreateStatusBar' undeclared (first use this function)
    index.cpp:46: error: wxT' undeclared (first use this function) index.cpp:46: error:SetStatusText' undeclared (first use this function)
    index.cpp:48:2: warning: no newline at end of file
    Process terminated with status 1 (0 minutes, 0 seconds)

    GPC schrieb:

    coder_in_hosen schrieb:

    was nun?

    Ach ja, das wxWidgets include-Verzeichnis hast du sicher bei "include" in Code::Blocks eingetragen (und nicht in den allgemeinen Directories)?

    Beim Linker hab ich zu C:\wxverzeichnis/lib gewählt(also auf den oberen navigationen da nicht erst auf directorie und dann linker,sondern sofort)

    Bei Directories hab ich unter "Compiler" C:\wxverzeichnis/include gewählt

    coder



  • coder_in_hosen schrieb:

    Fehlermeldung:

    Switching to target: default
    Compiling: index.cpp
    cc1plus.exe: wx_pch.h: No such file or directory
    index.cpp:1:19: wx/wx.h: No such file or directory
    index.cpp:5: error: expected class-name before '{' token
    index.cpp:13: error: expected class-name before '{' token
    index.cpp:16: error: expected ,' or...' before '&' token
    index.cpp:16: error: ISO C++ forbids declaration of wxString' with no type index.cpp:24: error: expected constructor, destructor, or type conversion before "IMPLEMENT_APP" index.cpp:24: error: expected,' or ;' before "IMPLEMENT_APP" index.cpp:39: error: expected,' or ...' before '&' token index.cpp:40: error: ISO C++ forbids declaration ofwxString' with no type
    index.cpp: In constructor MyFrame::MyFrame(int)': index.cpp:40: error: class \MyFrame' does not have any field named `wxFrame'
    index.cpp:40: error: NULL' undeclared (first use this function) index.cpp:40: error: (Each undeclared identifier is reported only once for each function it appears in.) index.cpp:40: error:wxID_ANY' undeclared (first use this function)
    index.cpp:40: error: title' undeclared (first use this function) index.cpp:44: error:CreateStatusBar' undeclared (first use this function)
    index.cpp:46: error: wxT' undeclared (first use this function) index.cpp:46: error:SetStatusText' undeclared (first use this function)
    index.cpp:48:2: warning: no newline at end of file
    Process terminated with status 1 (0 minutes, 0 seconds)

    GPC schrieb:

    coder_in_hosen schrieb:

    was nun?

    Ach ja, das wxWidgets include-Verzeichnis hast du sicher bei "include" in Code::Blocks eingetragen (und nicht in den allgemeinen Directories)?

    Beim Linker hab ich zu C:\wxverzeichnis/lib gewählt(also auf den oberen navigationen da nicht erst auf directorie und dann linker,sondern sofort)

    Bei Directories hab ich unter "Compiler" C:\wxverzeichnis/include gewählt

    coder

    also wie geht es eigentlich weiter? 😕



  • Nicht so ungeduldig...

    hab jetzt wxWidgets auf Win installiert, es kompiliert und mit Code::Blocks zum Laufen gebracht. Verstehe echt nicht, wo man da hängenbleiben kann, wenn man sich an die Anleitung hält.

    Also, erfolgreich kompiliert hast du es ja, oder?

    Ich hab noch folgendes bei Code::Blocks eingetragen und es lief...
    Zuerst ins Menü und auf das klicken:

    Settings -> Compiler Settings

    Dann im Dialog auf den Reiter "Directories", da auf Reiter "Compiler" und den include-Pfad eintragen, dann auf den Reiter "Linker" und den lib-Pfad eintragen. So hat's jedenfalls bei mir funktioniert.

    MfG

    GPC


Anmelden zum Antworten