grundeinstellungen problem



  • @scorrcher24:

    hab die alten pakete in aptitude mittels "_" deinstalliert (paket inkl. konfig löschen), dann wxGTK2.8.9 ohne probleme kompiliert. wx-config läuft ohne probleme, hab sogar den LD_LIBRARY_PATH auf das wx2.8 dir gelegt, was ja eigentlich nicht nötig sein sollte. die fehler bleiben mit dem dialogs demo:

    g++ dialogs.cpp dialogs.h `wx-config --cxxflags --libs` -o simple
    dialogs.h:98: Fehler: expected class-name before »{« token
    dialogs.h:102: Fehler: »wxFont« bezeichnet keinen Typ
    dialogs.h:103: Fehler: »wxColour« bezeichnet keinen Typ
    dialogs.h:170: Fehler: expected class-name before »{« token
    dialogs.h:172: Fehler: expected )' before »*« token dialogs.h:174: Fehler: »wxCommandEvent« wurde nicht deklariert dialogs.h:255: Fehler: »wxCommandEvent« wurde nicht deklariert dialogs.h:256: Fehler: »wxCommandEvent« wurde nicht deklariert dialogs.h:257: Fehler: »wxCommandEvent« wurde nicht deklariert dialogs.h:275: Fehler: »wxColourData« bezeichnet keinen Typ dialogs.h:277: Fehler: ISO-C++ verbietet Deklaration von »DECLARE\_EVENT\_TABLE« ohne Typ dialogs.h:278: Fehler: expected »;« before »}« token dialogs.h:278: Fehler: expected;' before »}« token
    dialogs.h:281: Fehler: expected class-name before »{« token
    dialogs.h:283: Fehler: expected )' before »*« token dialogs.h:286: Fehler: »wxPaintEvent« wurde nicht deklariert dialogs.h:288: Fehler: ISO-C++ verbietet Deklaration von »DECLARE\_EVENT\_TABLE« ohne Typ dialogs.h:289: Fehler: expected »;« before »}« token dialogs.h:289: Fehler: expected;' before »}« token
    dialogs.h:295: Fehler: »wxID_HIGHEST« wurde in diesem Gültigkeitsbereich nicht definiert

    ich vermute ein fehlendes binding oder ähnliches zu g++.

    @guenni81: mit den binaries hatte ich schon mehrfach eine installation erfolgreich gemacht, sowohl mit den etwas älteren als auch mit den aktuellsten direkt von wxWidgets.org nach änderung der /ect/apt/Sources.list

    habt ihr noch andere ideen?! ich hänge daran schon seit zwei tagen, unter ubuntu 8.10 hatte alles sofort nach installation über die binaries funktioniert. ist mir ein rätsel....



  • Und die SAMPLES? Im wxVerzeichnis im runtergeladenen? Gehen die?
    edit:
    Prüf mal die Header, ob die richtig included werden. Wenn da diese #ifndef WX_PREC etc steht, mach das mal weg und include nur wx/wx.h und was sonst noch anfällt.
    rya.



  • Hast du bei den Binarys auch die -dev Versionen installiert?
    Ich nutze zuhause die Binarys und es funktioniert problemlos.



  • @guenni81:
    in dem vorletzten post habe ich die liste aller installierten pakete, die -dev versionen waren auch dabei.

    @scorcher24:
    ich habe mal zwei samples aus dem heruntergeladenen wxGTK versucht zu kompilieren, die fehler sind unterschiedlich:

    calendar:
    make
    /home/mael15/wxGTK-2.8.9/bk-deps g++ -c -o calendar_calendar.o -D__WXGTK__ -I. -DWXUSINGDLL -I./../../samples -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I/home/mael15/wxGTK-2.8.9/lib/wx/include/gtk2-ansi-release-2.8 -I../../include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -DWX_PRECOMP -pthread -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing ./calendar.cpp
    ./calendar.cpp:48:9: Warnung: »wxUSE_DATEPICKCTRL_GENERIC« ist nicht definiert
    ./calendar.cpp:191:5: Warnung: »wxUSE_DATEPICKCTRL_GENERIC« ist nicht definiert
    ./calendar.cpp:343:5: Warnung: »wxUSE_DATEPICKCTRL_GENERIC« ist nicht definiert
    ./calendar.cpp:677:5: Warnung: »wxUSE_DATEPICKCTRL_GENERIC« ist nicht definiert
    g++ -o calendar calendar_calendar.o -pthread -L/home/mael15/wxGTK-2.8.9/lib -Wl,-rpath,/home/mael15/wxGTK-2.8.9/lib -lz -ldl -lm -lwx_gtk2_adv-2.8 -lwx_gtk2_html-2.8 -lwx_base_xml-2.8 -lexpat -lwx_gtk2_core-2.8 -lwx_base-2.8 -lwxtiff-2.8 -lwxjpeg-2.8 -pthread -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXinerama -lSM -lpng -lz -pthread -Wl,--version-script,/home/mael15/wxGTK-2.8.9/version-script -lz -ldl -lm
    /usr/bin/ld: cannot find -lwx_gtk2_adv-2.8
    collect2: ld gab 1 als Ende-Status zurück
    make: *** [calendar] Fehler 1

    ich habe ohne erfolg in root nach "wx_gtk2_adv-2." gesucht.

    andere versuchte kompilierung mit dem sample "keyboard":

    make
    /home/mael15/wxGTK-2.8.9/bk-deps g++ -c -o keyboard_keyboard.o -D__WXGTK__ -I. -DWXUSINGDLL -I./../../samples -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I/home/mael15/wxGTK-2.8.9/lib/wx/include/gtk2-ansi-release-2.8 -I../../include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -DWX_PRECOMP -pthread -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing ./keyboard.cpp
    g++ -o keyboard keyboard_keyboard.o -pthread -L/home/mael15/wxGTK-2.8.9/lib -Wl,-rpath,/home/mael15/wxGTK-2.8.9/lib -lz -ldl -lm -lwx_gtk2_core-2.8 -lwx_base-2.8 -lwxtiff-2.8 -lwxjpeg-2.8 -pthread -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXinerama -lSM -lpng -lz -pthread -Wl,--version-script,/home/mael15/wxGTK-2.8.9/version-script -lz -ldl -lm
    /usr/bin/ld: cannot find -lwx_gtk2_core-2.8
    collect2: ld gab 1 als Ende-Status zurück
    make: *** [keyboard] Fehler 1

    bei beiden samples bleibt der fehler, wenn ich "#ifndef WX_PRECOMP" entferne.

    sagt dir das was? wenn das alles zu eigenartig ist, dann setze ich das gesamte system nochmal neu auf.



  • Das sagt, dass er ne lib nicht gefunden hat.
    Hast du auch den DLL-Build durchgeführt? Weil er versucht ja das ganze gegen die dlls bzw so's zu linken. Ansonsten editier mal die config.gcc in $WXDIR/Build auf statisch, wenn du statisch gebaut hast.
    Oder hast du monolithisch gebaut mit configure?
    Das sind alles so die indikatoren.
    Und 1x ldupate bitte vorher durchführen.
    Ansonste mal bitte hier lesen: http://wiki.wxwidgets.org/Guides_%26_Tutorials#Linux
    rya.



  • hab ohne "--disable-shared" gebuilded mit ./configure --enable-unicode

    meine setup.h liegt auch unter:
    /usr/local/lib/wx/include/gtk2-unicode-release-2.8/wx/

    könnte das ein problem sein?



  • ./configure --enable-unicode

    Das ist das "problem". Editier mal die config.gcc in $WXDIR/build und stell unicode auf 1, dann gehen die samples. Der sucht non-unicode-libs, braucht aber die mit unicode natürlich.
    rya.



  • hat leider auch nichts gebracht.
    ich komme leider ein wenig in zeitnot und werde "einfach" ubuntu neu aufsetzen. die fehler sind mir doch zu eigenartig...

    trotzdem vielen dank für eure mühe! falls ich wieder zu demselben ergebnis kommen sollte, poste ich hier weiter.

    (man denke sich hier eine seeeehr lange liste nicht jugendfreier schimpfwörter... ;))



  • ok, nur nochmal der vollständigkeit halber: habe ubuntu 8.04 und g++/wxWidgets ausschließlich mit binaries installiert. was auch immer das nervige problem war, jetzt läuft es.



  • mael15 schrieb:

    ok, nur nochmal der vollständigkeit halber: habe ubuntu 8.04 und g++/wxWidgets ausschließlich mit binaries installiert. was auch immer das nervige problem war, jetzt läuft es.

    Seltsam 😕



  • Hallo guenni81 und mael15,

    guenni81 schrieb:

    mael15 schrieb:

    ok, nur nochmal der vollständigkeit halber: habe ubuntu 8.04 und g++/wxWidgets ausschließlich mit binaries installiert. was auch immer das nervige problem war, jetzt läuft es.

    Seltsam 😕

    Ich hatte gerde das gleiche Problem wie mael15 (EeePC900A, ubuntu 8.04, libwxbase2.8-dev && http://www.wxwidgets.org/docs/tutorials/hworld.txt):

    tucker@prak:~/Sources/TEST/wxWidgets/helloWorld
    $g++ helloWorld.cpp `wx-config --libs --cxxflags` -o helloWorld
    helloWorld.cpp:13: Fehler: invalid use of incomplete type »struct wxFrame«
    /usr/include/wx-2.8/wx/utils.h:50: Fehler: forward declaration of »struct wxFrame«
    helloWorld.cpp:16: Fehler: expected »,« or »...« before »&« token
    helloWorld.cpp:16: Fehler: ISO-C++ verbietet Deklaration von »wxPoint« ohne Typ
    
    */snip*/
    

    Der obige Fehler kam so zustande:

    root@prak:/usr/include
    $apt-get install libwxbase2.8-dev
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut
    Reading state information... Fertig
    The following packages were automatically installed and are no longer required:
      libwxgtk2.8-0 linux-headers-2.6.24-22-generic linux-headers-2.6.24-22
    Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
    Die folgenden zusätzlichen Pakete werden installiert:
      wx2.8-headers
    Vorgeschlagene Pakete:
      gettext wx2.8-doc
    Die folgenden NEUEN Pakete werden installiert:
      libwxbase2.8-dev wx2.8-headers
    0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    
    /*snip*/
    

    Er installiert nicht das libwxgtk2.8-dev package! Wenn das fehlt, dann produziert der g++ den besagten Fehler oben.

    Die Loesung bei mir war alles runterzuwerfen:

    root@prak:~
    $apt-get remove wx-common wx2.8-examples wx2.8-headers libwxbase2.8-dbg libwxbase2.8-dev libwxgtk2.8-dev
    

    und nur das libwxgtk2.8-dev zu installieren:

    root@prak:~
    $apt-get install libwxgtk2.8-dev
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut
    Reading state information... Fertig
    The following packages were automatically installed and are no longer required:
      linux-headers-2.6.24-22-generic linux-headers-2.6.24-22
    Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
    Die folgenden zusätzlichen Pakete werden installiert:
      libwxbase2.8-dev libwxgtk2.8-0 wx2.8-headers
    
    /*snip*/
    

    Das hat dann das Problem mit dem struct, der eigentlich ne class ist geloest! 😉

    Danach gabs kein Meckern mehr 😮 auch nicht fuer den Fall des #include als normal oder systemspezifisch:

    #include <wx/wx.h>
    //#include "wx/wx.h"
    

    Auch brauche ich keine symlinks setzen; mein /usr/include Verzeichnis sieht so aus:

    root@prak:/usr/include
    $ls | grep wx
    wx-2.8
    

    Das waren die Fehler, die ich erst vermutet hatte ...

    Danach habe ich versucht den Fehler zu reproduzieren und das klappt dann auch 😉
    Wer zunaechst nur das libwxbase2.8-dev installiert kann nachtraeglich Abhilfe schaffen:

    root@prak:/usr/include
    $apt-get install libwxgtk2.8-dev
    

    Hat bei mir dann auch mit der nachtraeglichen Installation von libwxgtk2.8-dev geklappt!
    Daher vermute ich abschliessend, dass das Entscheidende die Deinstallation von allem war,
    da muss irgendwas nicht gepasst haben, vielleicht ein Bug im build der deb-packages ...

    Resultat sieht nett aus 🙂 :
    http://bx.vg/~tucker/forum/200902025.wxWidgetHelloWorld.png

    graetz 😃

    P.s. Ich versuche ein Selberbauen von Bibliotheken auf debian und Derivaten davon immer zu vermeiden, da das einen sonst in naher Zukunft boese einholt. 😉



  • mael15 schrieb:

    g++ dialogs.cpp dialogs.h `wx-config --cxxflags --libs` -o simple

    mael15 schrieb:

    ok, nur nochmal der vollständigkeit halber: habe ubuntu 8.04 und g++/wxWidgets ausschließlich mit binaries installiert. was auch immer das nervige problem war, jetzt läuft es.

    Im obigen Beispiel hast du die Header-Datei mit compiliert. Kann es sein, dass es das war?



  • mael15 schrieb:

    hallo,

    ich habe gerade mein system neu aufgesetzt (ubuntu 8.04), wxWidgets installiert und bekommen folgende fehler bei dem simpelsten tutorium (http://www.zetcode.com/tutorials/wxwidgetstutorial/firstprograms/):

    In file included from main.cpp:2:
    simple.h:4: Fehler: invalid use of incomplete type »struct wxFrame«
    /usr/include/wx-2.8/wx/utils.h:50: Fehler: forward declaration of »struct wxFrame«
    main.cpp: In function »wxAppConsole* wxCreateApp()«:
    main.cpp:4: Fehler: es kann kein Objekt des abstrakten Typs »MyApp« belegt werden
    main.h:4: Anmerkung: denn die folgenden virtuellen Funktionen sind rein innerhalb »MyApp«:
    /usr/include/wx-2.8/wx/app.h:89: Anmerkung: virtual int wxAppConsole::OnRun()
    main.cpp: In member function »virtual bool MyApp::OnInit()«:
    main.cpp:9: Fehler: »class Simple« hat kein Element namens »Show«
    In file included from simple.cpp:1:
    simple.h:4: Fehler: invalid use of incomplete type »struct wxFrame«
    /usr/include/wx-2.8/wx/utils.h:50: Fehler: forward declaration of »struct wxFrame«
    simple.cpp: In constructor »Simple::Simple(const wxString&)«:
    simple.cpp:4: Fehler: Typ »wxFrame« ist keine direkte Basis von »Simple«
    simple.cpp:4: Fehler: »wxDefaultPosition« wurde in diesem Gültigkeitsbereich nicht definiert
    simple.cpp:4: Fehler: »wxSize« wurde in diesem Gültigkeitsbereich nicht definiert
    simple.cpp:6: Fehler: »Centre« wurde in diesem Gültigkeitsbereich nicht definiert
    simple.h:4: Fehler: invalid use of incomplete type »struct wxFrame«
    /usr/include/wx-2.8/wx/utils.h:50: Fehler: forward declaration of »struct wxFrame«

    irgendwie scheint wx einfach nicht dem kompiler zur verfügung zu stehen. oder wo könnte sonst das problem sein?!

    danke!

    zusatzinfos:
    wx-config --cxxflags --libs ergibt:
    -I/usr/lib/wx/include/base-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DwxUSE_GUI=0 -pthread
    -pthread -Wl,-Bsymbolic-functions -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8

    Da stimmt was mit deinen Include-Pfaden nicht!
    Beispielsweise wxX11-Headers obwohl wxGTK notwendig wäre.

    Weiterhin wichtig : wx/setup.h

    Poste mal deine genaue Config, 32/64bit, GTK?/KDE und den "wxconfig --all(oderso)" dump



  • Hallo nurf,

    nurf schrieb:

    Da stimmt was mit deinen Include-Pfaden nicht!
    Beispielsweise wxX11-Headers obwohl wxGTK notwendig wäre.

    hast Du mal alles versucht runterzuwerfen (apt-get remove, siehe voriger post) und _nur_ die libwxgtk2.8-dev zu installieren?
    Ich hatte ja den gleichen Fehler auf einem Ubuntu und habe ihn ledglich mit apt-get bewaeltigen koennen.

    graetz 😃


Anmelden zum Antworten