GTKmm Tutorial Teil 1
-
Hallo Leute,
ich wollte mich ebenfalls an der GTKmm-Programmierung probieren, bin allerdings schon bei der Installation und dem 1. Tutorial gescheitert und komme nun nicht weiter.
Nach der Installation von gtk-win32-devel-2.8.18-rc1.exe und gtkmm-devel-2.8.8-2.exe habe ich das Template von evilissimo installiert.
In Dev-Cpp gibt es nun bei mir wie beschrieben, die Option für eine Gtkmm-Applikation. Leider treten dort beim Kompillieren folgende Probleme auf:
Compiler: Default compiler Building Makefile: "C:\Programmierung\Dev-Cpp\Examples\Makefile.win" Führt make... aus make.exe -f "C:\Programmierung\Dev-Cpp\Examples\Makefile.win" all g++.exe -c main.cpp -o main.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include" In file included from main.cpp:1: mywindow.hpp:4:19: gtkmm.h: No such file or directory In file included from main.cpp:1: mywindow.hpp:6: error: `Gtk' has not been declared mywindow.hpp:7: error: expected class-name before '{' token main.cpp: In function `int main(int, char**)': main.cpp:5: error: `Gtk' has not been declared main.cpp:5: error: `Main' undeclared (first use this function) main.cpp:5: error: (Each undeclared identifier is reported only once for each function it appears in.) main.cpp:5: error: expected `;' before "main_obj" main.cpp:7: error: `main_obj' undeclared (first use this function) main.cpp:8: error: `EXIT_SUCCESS' undeclared (first use this function) make.exe: *** [main.o] Error 1 Ausführung beendet
Gebe ich in die Konsole: pkg-config --cflags gtkmm-2.4 ein, gibt es folgende Fehlermeldung:
C:\Programmierung\Dev-Cpp\bin> pkg-config --cflags gtkmm-2.4 Package gtkmm-2.4 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtkmm-2.4.pc' to the PKG_CONFIG_PATH environment variable No package 'gtkmm-2.4' found
Leider weiß ich nicht was es mit der PKG_CONFIG_PATH Umgebungsvariable auf sich hat und wo man diese ändern kann.
Für Tipps wäre ich sehr dankbar!
-
schicke mir eine Email
xmluser@web.de
-
Hallo Leute!
Ich habe mir dieses Tutorial durchgelesen und finde es super! Ich habe jetzt schon versucht das ganze unter Windows zum Laufen zu bringen, unter Linux habe ich es zum Laufen gebracht ;-).
Leider habe ich es unter Windows noch nicht geschaft.- NetBeans 5.5 + C++ Plugin (IDE)
- gtk-dev-2.10.6-win32-1.exe
- gtkmm-devel-2.8.8-2.exeDiese Pakete habe ich installiert.
Folgende Fehler erhalte ich:
undefined reference to `Gtk::Window::Window(Gtk::WindowType)' Main.cc:21: undefined reference to `Gtk::Main::run(Gtk::Window&)' Main.cc:23: undefined reference to `Gtk::Window::~Window()' Main.cc:23: undefined reference to `Gtk::Main::~Main()' Main.cc:23: undefined reference to `Gtk::Window::~Window()' Main.cc:23: undefined reference to `Gtk::Main::~Main()'
Ich sags auch gleich ich habe nicht alle libs einzeln hinzugefügt sondern mit den commands:
`pkg-config --cflags gtkmm-2.4` `pkg-config --libs gtkmm-2.4`
erstellt.
Weiß jemand woran das liegen kann?
Danke im voraus!
lg fluffy
-
Welchen Compiler verwendest du?
-
Sorry!
g++ 3.4.2 (MinGW)
C++ Code kompilieren funktioniert einwandfrei!
-
Ähm, mach da mal einen Aufruf draus:
g++ -o main main.cpp $(pkg-config gtkmm-2.4 --cflags --libs)
-
GPC schrieb:
Ähm, mach da mal einen Aufruf draus:
g++ -o main main.cpp $(pkg-config gtkmm-2.4 --cflags --libs)
Ähm...das verstehe ich jetzt nicht in der Console eingeben? Oder meinst Du ich soll alles ausgeben von Anfang an...
C:\>pkg-config --cflags --libs gtkmm-2.4 -mms-bitfields -ID:/Programme/DevelopmentTools/GTK/include/gtkmm-2.4 -ID:/Programme/DevelopmentTools/GTK/lib/gtkmm-2.4/include -ID:/Programme/DevelopmentTools/GTK/include/glibmm-2.4 -ID:/Programme/DevelopmentTools/GTK/lib/glibmm-2.4/include -ID:/Programme/DevelopmentTools/GTK/include/gdkmm-2.4 -ID:/Programme/DevelopmentTools/GTK/lib/gdkmm-2.4/include -ID:/Programme/DevelopmentTools/GTK/include/pangomm-1.4 -ID:/Programme/DevelopmentTools/GTK/include/atkmm-1.6 -ID:/Programme/DevelopmentTools/GTK/include/gtk-2.0 -ID:/Programme/DevelopmentTools/GTK/include/sigc++-2.0 -ID:/Programme/DevelopmentTools/GTK/lib/sigc++-2.0/include -ID:/Programme/DevelopmentTools/GTK/include/glib-2.0 -ID:/Programme/DevelopmentTools/GTK/lib/glib-2.0/include -ID:/Programme/DevelopmentTools/GTK/lib/gtk-2.0/include -ID:/Programme/DevelopmentTools/GTK/include/pango-1.0 [b]-I/home/ivan/cross/build/include/cairo <-- das ist aber nicht ganz richtig oder?[/b] -ID:/Programme/DevelopmentTools/GTK/include/cairo -ID:/Programme/DevelopmentTools/GTK/include/atk-1.0 -LD:/Programme/DevelopmentTools/GTK/lib -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0 -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
Fehlt mir da vielleicht ein Paket? In der Depencies steht da etwas von cairomm, das habe ich aber nirgends gefunden
-
Äh, nein. Weißt du, ich habe keine Ahnung, wie das mit NetBeans und C++ funktioniert, da ich es ehrlich gesagt für ziemlich daneben halte, eine Java IDE für das Programmieren von C++ zu verwenden, aber jedem das seine
Im Grunde solltest du das, was ich oben getippt habe, mal in die MinGW-Shell eingeben, um zu testen, ob's klappt.
Alternativ könntest du auch gtkmm mit dem Visual Studio benutzen, siehe hier.
Und nein, cairo(mm) brauchst du nicht für Standard GTK+ bzw. gtkmm Anwendungen. Das ist eher wie ein bisserl Zucker auf den Kuchen drauf.
-
GPC schrieb:
Äh, nein. Weißt du, ich habe keine Ahnung, wie das mit NetBeans und C++ funktioniert, da ich es ehrlich gesagt für ziemlich daneben halte, eine Java IDE für das Programmieren von C++ zu verwenden, aber jedem das seine
Im Grunde solltest du das, was ich oben getippt habe, mal in die MinGW-Shell eingeben, um zu testen, ob's klappt.
Alternativ könntest du auch gtkmm mit dem Visual Studio benutzen, siehe hier.
Und nein, cairo(mm) brauchst du nicht für Standard GTK+ bzw. gtkmm Anwendungen. Das ist eher wie ein bisserl Zucker auf den Kuchen drauf.
hrhrhr :D, naja sagen wir es so, ich arbeite Tag, täglich mit VS2005 aber programmiere dort in C#. Das Problem ist ja VS nicht unter Linux rennt(und bitte nicht mit Wine ;-)). Das ist ja der ausschlaggebende Grund. Unter Linux gibt es zwar KDevelop, Anjuta usw...nur wollte ich eben eine IDE(für Win und Linux), ich habe versucht mit Eclipse mein Problem zu lösen aber da besteht ja das Problem mit den `` unter Windows, das im Gegensatz "Netbeans" anscheinend besser gelöst hat...denn soweit war ich noch nie...
Ich war im Moment konfus, da ja unter Windows der Befehl ned funktioniert...
Oki, dann liegt es anscheinend an den Versionen...den Zucker brauch ich derzeit nicht, aber vielleicht einen Kaffee...
Package gtkmm-2.4 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtkmm-2.4.pc' to the PKG_CONFIG_PATH environment variable No package 'gtkmm-2.4' found Main.cc:9:19: gtkmm.h: No such file or directory Main.cc:10: error: expected namespace-name before ';' token Main.cc:10: error: `<type error>' is not a namespace Main.cc: In function `int main(int, char**)': Main.cc:16: error: `Main' undeclared (first use this function) Main.cc:16: error: (Each undeclared identifier is reported only once for each function it appears in.) Main.cc:16: error: expected `;' before "kit" Main.cc:18: error: `Window' undeclared (first use this function) Main.cc:18: error: expected `;' before "window" Main.cc:20: error: `Main' has not been declared Main.cc:20: error: `window' undeclared (first use this function) Main.cc:20: error: `run' undeclared (first use this function)
$ $PKG_CONFIG_PATH sh: /D/PROGRA~1/DEVELO~1/GTK/lib/pkgconfig:D:\Programme\DevelopmentTools\GTK\lib\pkgconfig: No such file or directory
-
Ich verwende gtkmm unter Unix und dem emacs, IDEs sind nichts für mich
housefluffy schrieb:
Oki, dann liegt es anscheinend an den Versionen...
gtkmm-2.4 API ist aktuell, keine Sorge.
den Zucker brauch ich derzeit nicht, aber vielleicht einen Kaffee...
Package gtkmm-2.4 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtkmm-2.4.pc' to the PKG_CONFIG_PATH environment variable No package 'gtkmm-2.4' found Main.cc:9:19: gtkmm.h: No such file or directory Main.cc:10: error: expected namespace-name before ';' token Main.cc:10: error: `<type error>' is not a namespace Main.cc: In function `int main(int, char**)': Main.cc:16: error: `Main' undeclared (first use this function) Main.cc:16: error: (Each undeclared identifier is reported only once for each function it appears in.) Main.cc:16: error: expected `;' before "kit" Main.cc:18: error: `Window' undeclared (first use this function) Main.cc:18: error: expected `;' before "window" Main.cc:20: error: `Main' has not been declared Main.cc:20: error: `window' undeclared (first use this function) Main.cc:20: error: `run' undeclared (first use this function)
$ $PKG_CONFIG_PATH sh: /D/PROGRA~1/DEVELO~1/GTK/lib/pkgconfig:D:\Programme\DevelopmentTools\GTK\lib\pkgconfig: No such file or directory
Hm, okay, such mal nach der Datei gtkmm-2.4.pc und füg das Verzeichnis dann zur PKG_CONFIG_PATH Variable dazu (die Datei mit der Variable dürfte profile heißen und im MinGW Verzeichnis rumliegen).
Alternativer Plan: Du fügst alle Include-Verzeichnisse und Libs, gegen die gelinkt werden muss, von Hand zum Projekt dazu und machst dann halt ein Template draus, damit du das nicht jedes mal machen musst.
-
Vielen Dank GPC!
Nachdem ich es mit der MinGW Shell geschafft habe, war ich hartnäckig und habe meine Programmier-Umgebung unter NetBeans auch schon eingerichtet, voila -> es funktioniert.
...und ein Danke an das C/C++ Forum, das es überhaupt gibt und einen Newb - wie mich - aushaltet *hrhr*
lg housefluffy
-
http://www.pcpm.ucl.ac.be/~gustin/win32_ports/
Die Seite scheint verschwunden zu sein?
Vielleicht ist sie auch nur für den Moment nicht erreichbar, ich für meinen Teil rechne mit dem schlimmsten!Also.... gibt es Mirrors, Alternativen?
Aber bitte nix zum selbst-durchkompillieren, sowas funkt nämlich nie wirklich und nervt.Dankö :xmas1:
-
Wrappidiwrap schrieb:
http://www.pcpm.ucl.ac.be/~gustin/win32_ports/
Die Seite scheint verschwunden zu sein?
Nein, bei mir jedenfalls nicht.
Vielleicht ist sie auch nur für den Moment nicht erreichbar, ich für meinen Teil rechne mit dem schlimmsten!
Hast dich wohl verrechnet
MfG
GPC
-
Wrappidiwrap schrieb:
http://www.pcpm.ucl.ac.be/~gustin/win32_ports/
Die Seite scheint verschwunden zu sein?
Vielleicht ist sie auch nur für den Moment nicht erreichbar, ich für meinen Teil rechne mit dem schlimmsten!Also.... gibt es Mirrors, Alternativen?
Aber bitte nix zum selbst-durchkompillieren, sowas funkt nämlich nie wirklich und nervt.Dankö :xmas1:
http://www.mapr.ucl.ac.be/~gustin/win32_ports/
Vorkompiliert findest dus vielleicht auf devpak.org
-
Guten Abend,
vor einigen Wochen habe ich mal versucht mit Dev-Cpp mit gtkmm solche Fenster zu programmieren etc.. Leider ohne Erfolg.
Habe den Versuch heute noch einmal aufgenommen.
Ich habe nun als erstes Mingw, dann GTK+, dann gtkmm und letztendlich dann Dev-Cpp installiert. Um dann die Templates zu haben, habe ich dann noch den Template installer von evilissimo benutzt. Aber auch das schon ohne Erfolg.Da ich es anscheinend alleine niemals schaffe, bitte ich darum, dass jemand, der Zeit und Lust dazu hat, das mit mir nochmal Stück für Stück durchzugehen.
Hilfe
Mit freundlichen Grüßen
DarkVampire
-
Hallo,
DarkVampire schrieb:
vor einigen Wochen habe ich mal versucht mit Dev-Cpp mit gtkmm solche Fenster zu programmieren etc.. Leider ohne Erfolg.
was genau war das Problem?
Ich habe nun als erstes Mingw, dann GTK+, dann gtkmm und letztendlich dann Dev-Cpp installiert. Um dann die Templates zu haben, habe ich dann noch den Template installer von evilissimo benutzt. Aber auch das schon ohne Erfolg.
Auch hier: Wo genau ist der Knackpunkt?
Hast du auch die Pfade gesetzt? Zum Einen musst du Dev-Cpp sagen, wo der MinGW liegt (außer er erkennt ihn von selbst) und zum Anderen will der MinGW wissen, woher er gtkmm nehmen soll.
MfG
GPC
-
Hallo,
habe wohl etwas schnell geschrieben und nicht darauf geachtet, was ich schreibe und das die hälfte fehlt.Also zu erstmal benutze ich zur Zeit noch Win98Se
So, dann habe ich grad mal nochmal alles runtergeschmissen und alles neu installiert und das dokumentiert:
mingw: mingw-5.1.2., full installation, hinzufügen von set PATH=D:\Programmierung\MinGW\bin;%PATH% zur autoexec.bat
->neustart->
Ausgabe bei gcc -v: C:\WINDOWS\Desktop>gcc -v
Reading specs from D:/PROGRA~2/MINGW/BIN/../lib/gcc/mingw32/3.4.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --e
nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-ja
va-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchroniz
ation --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.2 (mingw-special)gtk: gtk-win32-devel-2.6.10-rc1, full installation, automatisch zur autoexec.bat wurde angehängt:
SET GTK_BASEPATH=D:\PROGRA~2\GTKSET INCLUDE=D:\Programmierung\GTK\INCLUDE;D:\Programmierung\GTK\INCLUDE\GTK-2.0;D:\Programmierung\GTK\INCLUDE\GLIB-2.0;
D:\Programmierung\GTK\INCLUDE\PANGO-1.0;D:\Programmierung\GTK\INCLUDE\ATK-1.0;D:\Programmierung\GTK\INCLUDE\GTKGLEXT-1.0;
D:\Programmierung\GTK\LIB\GTK-2.0\INCLUDE;D:\Programmierung\GTK\LIB\GLIB-2.0\INCLUDE;D:\Programmierung\GTK\LIB\GTKGLEXT-1.0\INCLUDE;
D:\Programmierung\GTK\INCLUDE\LIBGLADE-2.0;D:\Programmierung\GTK\INCLUDE\LIBXML2;SET LIB=D:\Programmierung\GTK\LIB;
SET PATH=%GTK_BASEPATH%\bin;%PATH%
Bei der Installation gab es die möglichkeit, Gtk für Dev-Cpp zu registrieren. Habe das Kästchen deaktiviert, weil Dev-Cpp gar nicht installiert war.
->neustart->
gtkmm: gtkmm-devel-2.6.2-1, full installation
->neustart->
devcpp: devcpp-4.9.9.2_setup, full installation (unten ist eine kästchen "remove all previousconfiguration files", das habe ich nicht aktiviert)
->neustart->
starten von devcpp, konfiguration beim start:
sprache: deutsch
code completion feature: "Yes, I want to use this feature" aktiviert
Cache: "Yes, create the cache now" aktiviertKompilierung einer normalen C Datei funktioniert.
Dev-Cpp geschlossen
Dev-C++ Gtkmm Template Installer ausgeführt
Dev-Cpp geöffnet
Nun ist gtkmm Application verfügbar:
C++-Compilerparameter:
-ID:/PROGRAMMIERUNG/GTK/include/gtkmm-2.4
-ID:/PROGRAMMIERUNG/GTK/lib/gtkmm-2.4/include
-ID:/PROGRAMMIERUNG/GTK/include/glibmm-2.4
-ID:/PROGRAMMIERUNG/GTK/lib/glibmm-2.4/include
-ID:/PROGRAMMIERUNG/GTK/include/gdkmm-2.4
-ID:/PROGRAMMIERUNG/GTK/lib/gdkmm-2.4/include
-ID:/PROGRAMMIERUNG/GTK/include/pangomm-1.4
-ID:/PROGRAMMIERUNG/GTK/include/atkmm-1.6
-ID:/PROGRAMMIERUNG/GTK/include/gtk-2.0
-ID:/PROGRAMMIERUNG/GTK/include/sigc++-2.0
-ID:/PROGRAMMIERUNG/GTK/lib/sigc++-2.0/include
-ID:/PROGRAMMIERUNG/GTK/include/glib-2.0
-ID:/PROGRAMMIERUNG/GTK/lib/glib-2.0/include
-ID:/PROGRAMMIERUNG/GTK/lib/gtk-2.0/include
-ID:/PROGRAMMIERUNG/GTK/include/pango-1.0
-ID:/PROGRAMMIERUNG/GTK/include/atk-1.0Linkerparameter:
-LD:/PROGRAMMIERUNG/GTK/lib
-lgtkmm-2.4
-lgdkmm-2.4
-latkmm-1.6
-lgtk-win32-2.0
-lpangomm-1.4
-lglibmm-2.4
-lsigc-2.0
-lgdk-win32-2.0
-latk-1.0
-lgdk_pixbuf-2.0
-lpangowin32-1.0
-lgdi32
-lpango-1.0
-lgobject-2.0
-lgmodule-2.0
-lglib-2.0
-lintl
-liconv
-Wl,--enable-runtime-pseudo-relocVersuch die drei im Template voreingestellten Dateien zu kompilieren:
D:\Programmierung\Dev-Cpp\G__~1.EXE Templates/mywindow.o: No such file or directory.Ordner: MinGw: D:\Programmierung\MinGW Gtk:D:\Programmierung\GTK gtkmm:D:\Programmierung\GTK devcpp:D:\Programmierung\Dev-Cpp
Als Compiler ist immer "default Compiler" eingestellt, ist das richtig oder muss ich da MinGW einstellen? Wenn ja, wie?
Weiß aber leider jetzt auch nicht genau welche Pfade du meinst, entschuldigung
mfg DarkVampire
-
Hi,
DarkVampire schrieb:
habe wohl etwas schnell geschrieben und nicht darauf geachtet, was ich schreibe und das die hälfte fehlt.
np.
Also zu erstmal benutze ich zur Zeit noch Win98Se
Okay, das begünstigt die Sache nicht gerade^^
devcpp: devcpp-4.9.9.2_setup, full installation (unten ist eine kästchen "remove all previousconfiguration files", das habe ich nicht aktiviert)
Ist das der, bei dem der Compiler mitgeliefert wird, oder der ohne?
Mir fällt grad auf, dass das Ding schon locker drei Jahre auf'm Buckel hatVersuch die drei im Template voreingestellten Dateien zu kompilieren:
D:\Programmierung\Dev-Cpp\G__~1.EXE Templates/mywindow.o: No such file or directory.Das Problem kann auch von Dev-Cpp her rühren, also ein bug sein. Den lese ich öfters, nicht nur bei gtkmm. Trotzdem merkwürdiger Fehler...
Als Compiler ist immer "default Compiler" eingestellt, ist das richtig oder muss ich da MinGW einstellen? Wenn ja, wie?
Wenn du die Version ohne Compiler installiert hast, ist es bereits der richtige (weil einzige ). Falls nicht, wählt Dev-Cpp den mitgelieferten Compiler aus, dem natürlich gtkmm usw. fehlt.
Weiß aber leider jetzt auch nicht genau welche Pfade du meinst, entschuldigung
Ich meinte das, was du zur autoexec.bat hinzugefügt hast (also die Include - und Lib Pfade).
Btw. Ich hab mal deinen Post editiert, wurde 'n bisschen breit, der Thread
MfG
GPC
-
Zitat:
devcpp: devcpp-4.9.9.2_setup, full installation (unten ist eine kästchen "remove all previousconfiguration files", das habe ich nicht aktiviert)Ist das der, bei dem der Compiler mitgeliefert wird, oder der ohne?
Mir fällt grad auf, dass das Ding schon locker drei Jahre auf'm Buckel hatIch Döskopp
Genau das war der Fehler. Ich bin eigentlich immer davon ausgegangen, dass es die nonmingw datei gewesen wäre, bin mir aber auch sehr sicher, dass eine solche Setupdatei auf meinem Rechner mal ausgeführt wurde. Da es aber dort auch schon Probleme gab, hat sich da bei weiteren Downloads die falsche Setup eingeschummelt.
Vielen Dank, ohne dich wäre ich wohl nie darauf gekommen.Also an Leute die manchmal genauso verwirrt sind, nehmt die devcpp-4.9.9.2_nomingw_setup.
4.9.9.2 ist auch schon etwas älter, aber eben die neuste Version. Wobei ich gerade irgentwas von 5.0 Beta gelesen habe. Naja
Also Danke
mit freundlichen Grüßen
DarkVampire
-
DarkVampire schrieb:
Also an Leute die manchmal genauso verwirrt sind, nehmt die devcpp-4.9.9.2_nomingw_setup.
Oder lieber was gscheites wie Code::Blocks, Visual C++ Express Edition oder das MinGW Developer Studio