grundeinstellungen problem
-
Probier mal folgendes:
Deinstallier wxWidgets komplett
- Lad dir wxGTK-2.8.9 runter von http://wxwidgets.org
- Kompilier das wie bekannt mit dem Dreisatz ( configure && make && make install)
- geh nach $WXDIR/samples und teste ob es funzt.
- Wenn nein, neuen Bericht bitte
rya.
-
wxWidgets lässt sich für Debian und Ubuntu auch als fertige Binär Pakete installieren.
Mehr dazu siehe hier: http://wiki.wxpython.org/InstallingOnUbuntuOrDebian
-
@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 definiertich 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 1ich 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 1bei 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.pnggraetz
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.8Da 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