GTKmm Tutorial Teil 1



  • Ä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\GTK

    SET 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" aktiviert

    Kompilierung 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.0

    Linkerparameter:
    -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-reloc

    Versuch 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 hat 😮

    Versuch 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 hat 😮

    Ich 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 🙂



  • Hi alle zusammen!

    evilissimo schrieb:

    Nach der Installation der GTK+ Bibliotheken braucht man noch die GTKmm Bibliotheken die man auf:
    http://www.pcpm.ucl.ac.be/~gustin/win32_ports/
    bekommt. Klickt dort im Menü auf „gtkmm on win32“ und auf den Link unter
    "Developer (Full) Environment"
    (runtime + headers, import libraries, demo, doc).

    Bin ich blind, oder ist es dort auf der Seite nicht so, wie du es beschreibst? Ich finde da bloß Binaries von GTKmm. Wie muss ich genau vorgehen?

    Vielen Dank!

    Gruß,
    Heribert



  • Hallo,

    das hier runterladen und installieren.

    MfG

    GPC



  • Hallo,

    immer wenn ich versuche gtkmm Applikationen mit DevC++ zu kompilieren erhalte ich diese sonderbare Fehlermeldung:

    [Linker error] undefined reference to `__cpu_features_init' 
    ld returned 1 exit status 
    C:\Dev-Cpp\Makefile.win [Build Error]  [Projekt2.exe] Error 1
    

    Ich kann damit irgendwie nichts anfangen. Wenn ich in der CMD

    'pkg-config --modversion --cflags --libs gtkmm-2.4'
    

    eingebe, dann bekomme ich diese Ausgabe

    2.10.5
    -mms-bitfields -IC:/GTK/include/gtkmm-2.4 -IC:/GTK/lib/gtkmm-2.4/include -IC:/GT
    K/include/glibmm-2.4 -IC:/GTK/lib/glibmm-2.4/include -IC:/GTK/include/gdkmm-2.4
    -IC:/GTK/lib/gdkmm-2.4/include -IC:/GTK/include/pangomm-1.4 -IC:/GTK/include/atk
    mm-1.6 -IC:/GTK/include/gtk-2.0 -IC:/GTK/include/sigc++-2.0 -IC:/GTK/lib/sigc++-
    2.0/include -IC:/GTK/include/glib-2.0 -IC:/GTK/lib/glib-2.0/include -IC:/GTK/lib
    /gtk-2.0/include -IC:/GTK/include/cairomm-1.0 -IC:/GTK/include/pango-1.0 -IC:/GT
    K/include/cairo -IC:/GTK/include/freetype2 -IC:/GTK/include/atk-1.0  -user32 -Wl
    ,-luuid -LC:/GTK/lib -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0 -lpango
    mm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -limm32 -lshell32 -
    lole32 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lca
    iro -lpangoft2-1.0 -lfontconfig -lfreetype -lz -lpango-1.0 -lm -lgobject-2.0 -lg
    module-2.0 -lglib-2.0 -lintl -liconv
    

    Es scheint also alles in Ordnung zu sein.
    Desweiteren habe ich mir diese Anleitung durchgelesen: http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/apes02.html. Ich verstehe nicht, wieso die auf der offiziellen Seite

    g++ `pkg-config --cflags gtkmm-2.4` my_programs.cc -o my_program `pkg-config --libs gtkmm-2.4`
    

    als Compiler-Befehl schreiben, wenn dieser Befehl doch gar nicht geht!

    Außerdem wundert mich, dass

    'pkg-config --modversion --cflags --libs gtkmm-2.4'
    

    zwar in der CMD eine ordentliche Ausgabe gibt, unter cygwin erhalte ich als Antwort jedoch, dass gtkmm-2.4 nicht gefunden wurde, und ich gtkmm-2.4.pc zur PKG_CONFIG_PATH Variable hinzufügen soll. Das habe ich aber bereits getan!

    Ich hoffe ihr könnt mir helfen

    Danke



  • Hallo,

    wollte mir das eigentlich über's Wochenende ansehen, hab's aber leider verpennt.
    Setz am Dienstag noch mal 'n Post hierrein oder 'ne E-Mail an mich ab, falls ich's wieder vergesse.

    MfG

    GPC



  • basti33 schrieb:

    Hallo,

    immer wenn ich versuche gtkmm Applikationen mit DevC++ zu kompilieren erhalte ich diese sonderbare Fehlermeldung:

    [Linker error] undefined reference to `__cpu_features_init' 
    ld returned 1 exit status 
    C:\Dev-Cpp\Makefile.win [Build Error]  [Projekt2.exe] Error 1
    

    Könnte ein Problem von Dev-Cpp sein... wäre nicht das erste mal.

    Ich kann damit irgendwie nichts anfangen. Wenn ich in der CMD

    'pkg-config --modversion --cflags --libs gtkmm-2.4'
    

    eingebe, dann bekomme ich diese Ausgabe

    2.10.5
    -mms-bitfields -IC:/GTK/include/gtkmm-2.4 -IC:/GTK/lib/gtkmm-2.4/include -IC:/GT
    K/include/glibmm-2.4 -IC:/GTK/lib/glibmm-2.4/include -IC:/GTK/include/gdkmm-2.4
    -IC:/GTK/lib/gdkmm-2.4/include -IC:/GTK/include/pangomm-1.4 -IC:/GTK/include/atk
    mm-1.6 -IC:/GTK/include/gtk-2.0 -IC:/GTK/include/sigc++-2.0 -IC:/GTK/lib/sigc++-
    2.0/include -IC:/GTK/include/glib-2.0 -IC:/GTK/lib/glib-2.0/include -IC:/GTK/lib
    /gtk-2.0/include -IC:/GTK/include/cairomm-1.0 -IC:/GTK/include/pango-1.0 -IC:/GT
    K/include/cairo -IC:/GTK/include/freetype2 -IC:/GTK/include/atk-1.0  -user32 -Wl
    ,-luuid -LC:/GTK/lib -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0 -lpango
    mm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -limm32 -lshell32 -
    lole32 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lca
    iro -lpangoft2-1.0 -lfontconfig -lfreetype -lz -lpango-1.0 -lm -lgobject-2.0 -lg
    module-2.0 -lglib-2.0 -lintl -liconv
    

    Es scheint also alles in Ordnung zu sein.

    Jedenfalls sehe ich nicht, dass ein Paket nicht gefunden wurde, ist alles da.

    Zum Vergleich meine Ausgabe:

    [gpc@desktop ~]$ pkg-config --modversion --cflags --libs gtkmm-2.4
    2.10.8
    -DXTHREADS -DXUSE_MTSAFE_API 
    -I/usr/local/include/gtkmm-2.4 
    -I/usr/local/lib/gtkmm-2.4/include 
    -I/usr/local/include/glibmm-2.4 
    -I/usr/local/lib/glibmm-2.4/include 
    -I/usr/local/include/gdkmm-2.4 
    -I/usr/local/lib/gdkmm-2.4/include 
    -I/usr/local/include/pangomm-1.4 
    -I/usr/local/include/atkmm-1.6 
    -I/usr/local/include/gtk-2.0 
    -I/usr/local/include/sigc++-2.0
    -I/usr/local/lib/sigc++-2.0/include 
    -I/usr/local/include/glib-2.0 
    -I/usr/local/lib/glib-2.0/include 
    -I/usr/local/lib/gtk-2.0/include 
    -I/usr/local/include/cairomm-1.0 
    -I/usr/local/include/pango-1.0 
    -I/usr/local/include/cairo 
    -I/usr/X11R6/include 
    -I/usr/local/include/freetype2 
    -I/usr/local/include 
    -I/usr/local/include/atk-1.0  
    -Wl,--rpath -Wl,/usr/local/lib -pthread -L/usr/local/lib -L/usr/X11R6/lib 
    -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-x11-2.0 -lpangomm-1.4 -lcairomm-1.0 
    -lglibmm-2.4 -lsigc-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -latk-1.0 
    -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXcursor -lXfixes -lcairo -lpangoft2-1.0 
    -lfontconfig -lfreetype -lz -lpango-1.0 -lm -lXrender -lX11 -lXext -lgobject-2.0 
    -lgmodule-2.0 -lglib-2.0 -liconv
    

    Desweiteren habe ich mir diese Anleitung durchgelesen: http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/apes02.html. Ich verstehe nicht, wieso die auf der offiziellen Seite

    g++ `pkg-config --cflags gtkmm-2.4` my_programs.cc -o my_program `pkg-config --libs gtkmm-2.4`
    

    als Compiler-Befehl schreiben, wenn dieser Befehl doch gar nicht geht!

    Ja, also diesen Befehl kannst du z.B. in die msys oder cygwin Shell eintippen. Die arbeitet sehr gut mit MinGW zusammen. pkg-config übernimmt im Prinzip für dich das Angeben der Paktete, die zum Linken benötigt werden.

    Außerdem wundert mich, dass

    'pkg-config --modversion --cflags --libs gtkmm-2.4'
    

    zwar in der CMD eine ordentliche Ausgabe gibt, unter cygwin erhalte ich als Antwort jedoch, dass gtkmm-2.4 nicht gefunden wurde, und ich gtkmm-2.4.pc zur PKG_CONFIG_PATH Variable hinzufügen soll. Das habe ich aber bereits getan!

    Zeig mal bitte deine profile-Datei von cygwin.

    Noch was: Dev-Cpp ist ein ziemlich verbuggtes Tool, weshalb man oft damit Probleme hat. Wenn du willst bzw. kannst, empfehle ich dir den Umstieg auf das Visual Studio 2005 Express Edition. In den FAQ des guif Forum gibt es ein Tutorial, wie man GTK+ und gtkmm damit zum Laufen bringt.

    MfG

    GPC



  • Hallo und danke für deine Antwort,

    hier ist meine Profiles-Datei aus C:\cygwin\etc.

    # base-files version 3.7-1
    
    # WARNING
    #
    # IF THIS FILE IS MODIFIED IT WILL NOT BE UPDATED BY THE CYGWIN
    # SETUP PROGRAM.  IT BECOMES YOUR RESPONSIBILITY.
    
    # The latest version as installed by the Cygwin Setup program can
    # always be found at /etc/defaults/etc/profile
    
    # Some resources...
    
    # Customizing Your Shell: http://www.dsl.org/cookbook/cookbook_5.html#SEC69
    # Consistent BackSpace and Delete Configuration:
    #   http://www.ibb.net/~anne/keyboard.html
    # The Linux Documentation Project: http://www.tldp.org/
    # The Linux Cookbook: http://www.tldp.org/LDP/linuxcookbook/html/
    
    # Setup some default paths.  Note that this order will allow user installed
    #  software to override 'system' software
    
    # If you wish to change the path for all users, it is recommended you edit
    #  /etc/bash.bashrc
    
    # If you wish all future users to have some default setup, it is recommended you
    #  edit /etc/skel/.bashrc
    
    # If you wish to change the path on a user by user basis, it is recommended you
    #  edit ~/.bashrc
    
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$PATH
    export PATH
    
    MANPATH=/usr/local/man:/usr/share/man:/usr/man:$MANPATH
    export MANPATH
    
    INFOPATH=/usr/local/info:/usr/share/info:/usr/info:$INFOPATH
    export INFOPATH
    
    # Set the user id
    USER="`id -un`"
    export USER
    
    # Here is how HOME is set, in order of priority, when starting from Windows
    #  1) From existing HOME in the Windows environment, translated to a Posix path
    #  2) from /etc/passwd, if there is an entry with a non empty directory field
    #  3) from HOMEDRIVE/HOMEPATH
    #  4) / (root)
    
    # If the home directory doesn't exist, create it.
    if [ ! -d "${HOME}" ]; then
    	mkdir -p "${HOME}"
    	echo "Copying skeleton files."
    	echo "These files are for the user to personalise"
    	echo "their cygwin experience."
    	echo
    	echo "These will never be overwritten."
    	echo
    	cd /etc/skel
    	/bin/find . -type f | while read f; do
    		fDest=`echo ${f} | sed -e 's/^\.//g'`
    		if [ ! -e "${HOME}${fDest}" -a ! -L "${HOME}${fDest}" ]; then
    			/usr/bin/install -D -p -v "${f}" "${HOME}/${fDest}"
    		fi
    	done
    fi
    
    chmod 1777 /tmp 2>/dev/null
    
    # Default to unix make mode
    MAKE_MODE=unix
    export MAKE_MODE
    
    # It is recommended that cvs uses ssh for it's remote shell environment
    CVS_RSH=/bin/ssh
    export CVS_RSH
    
    # Patches to Cygwin always appreciated ;)
    # CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/src
    # export CVSROOT
    
    # Shell dependent settings
    case "`echo "_$0" | /usr/bin/tr '[:upper:]' '[:lower:]' | /usr/bin/sed -e 's/^_//'`" in
    bash     | -bash     | */bash | \
    bash.exe | -bash.exe | */bash.exe )
    	# Set a HOSTNAME variable
    	HOSTNAME=`hostname`
    	export HOSTNAME
    
    	# Set a default prompt of: user@host and current_directory
    	PS1='[\e]0;\w\a]\n[\e[32m]\u@\h [\e[33m]\w[\e[0m]\n\$ '
    	;;
    ksh*     | -ksh*     | */ksh* | \
    ksh*.exe | -ksh*.exe | */ksh*.exe )
    	# Set a HOSTNAME variable
    	typeset -l HOSTNAME
    
    	# Set a default prompt of: user@host and current_directory
    	PS1='^[]0;${PWD}^G
    ^[[32m${USER}@${HOSTNAME} ^[[33m${PWD}^[[0m
    $ '
    	;;
    zsh*     | -zsh*     | */zsh* | \
    zsh*.exe | -zsh*.exe | */zsh*.exe )
    	# Set a default prompt of: user@host, a command counter, and current_directory
    	PS1='(%n@%m)[%h] %~ %% '
    
    	# Set SHELL if not set
    	if [ ! -z "${ZSH_NAME}" -a -z "${SHELL}" ]; then
    		SHELL="/bin/zsh"
    		export SHELL	
    	fi
    	;;
    sh     | -sh     | */sh | \
    sh.exe | -sh.exe | */sh.exe )
    	# Set a simple prompt
    	PS1='$ '
    	;;
    * )
    	# Sorry, this shell has no defaults in /etc/profile,
    	#  feel free to add your own.
    
    	# If you have some recommendations for what these defaults
    	#  should be, please contact cygwin@cygwin.com with the
    	#  shell details and what you would like added.
    
    	# Thanks
    
    	PS1='$ '
    	;;
    esac
    
    export PS1
    
    # Run all of the profile.d scripts
    # Note that these are supplied by separate packages
    # Ascending alphanumerical order enforced
    if [ -d "/etc/profile.d" ]; then
    	while read f; do
    		if [ -f "${f}" ]; then
    			. "${f}"
    		fi
    	done <<- EOF
    	`/bin/find -L /etc/profile.d -type f -iname '*.sh' -or -iname '*.zsh' | LC_ALL=C sort`
    	EOF
    fi
    
    # Uncomment to use the terminal colours set in DIR_COLOR
    # eval "`dircolors -b /etc/DIR_COLORS`"
    
    # Default to removing the write permission for group and other
    #  (files normally created with mode 777 become 755; files created with
    #  mode 666 become 644)
    umask 022
    
    # Define default printer
    PRINTER=""
    case `uname -s` in
    CYGWIN_NT-*)
    	PRINTER="`regtool -q get '\user\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device' | sed 's/,.*$//'`"
    	;;
    CYGWIN_9?-*)
    	PRINTER="`regtool -q get '\config\System\CurrentControlSet\Control\Print\Printers\Default'`"
    	;;
    esac
    export PRINTER
    
    # Make sure we start in home unless invoked by CHERE
    if [ ! -z "${CHERE_INVOKING}" ]; then
      unset CHERE_INVOKING
    else
      cd "${HOME}"
    fi
    
    # Check to see if mkpasswd/mkgroup needs to be run try and cut down the emails
    #   about this on the lists!
    # If this message keeps appearing and you are sure it's a mistake (ie, don't
    #   email about it!), comment out the test below.
    case `id -ng` in
    mkpasswd )
      echo "Your group is currently \"mkpasswd\".  This indicates that"
      echo "the /etc/passwd (and possibly /etc/group) files should be rebuilt."
      echo "See the man pages for mkpasswd and mkgroup then, for example, run"
      echo "mkpasswd -l [-d] > /etc/passwd"
      echo "mkgroup  -l [-d] > /etc/group"
      echo "Note that the -d switch is necessary for domain users."
      ;;
    
    mkgroup )
      echo "Your group is currently \"mkgroup\".  This indicates that"
      echo "the /etc/group (and possibly /etc/passwd) files should be rebuilt."
      echo "See the man pages for mkpasswd and mkgroup then, for example, run"
      echo "mkpasswd -l [-d] > /etc/passwd"
      echo "mkgroup  -l [-d] > /etc/group"
      echo "Note that the -d switch is necessary for domain users."
      ;;
    
    mkgroup_l_d )
      echo "Your group name is currently \"mkgroup_l_d\". This indicates that not"
      echo "all domain users and groups are listed in the /etc/passwd and"
      echo "/etc/group files."
      echo "See the man pages for mkpasswd and mkgroup then, for example, run"
      echo "mkpasswd -l -d > /etc/passwd"
      echo "mkgroup  -l -d > /etc/group"
      echo
      echo "This message is only displayed once (unless you recreate /etc/group)"
      echo "and can be safely ignored."
    
      # only display the above once
      cp -f /etc/group "${HOME}/group.mkgroup_l_d" \
      && ( [ -w /etc/group ] || chmod --silent a+w /etc/group ; )\
      && sed -e 's/^mkgroup_l_d/mkgroup-l-d/' "${HOME}/group.mkgroup_l_d" > /etc/group \
      && chmod --silent --reference=/etc/passwd /etc/group
      rm -f "${HOME}/group.mkgroup_l_d"
      ;;
    esac
    

    So, ziemlich viel. Hoffe du kannst was damit anfangen.

    Danke

    P.S.: Der Sinn des Tutorials aus der FAQ erschließt sich mir irgendwie nicht so ganz. Ich habe auf den gtkmm Seiten auch etwas über das Benutzen von gtkmm mit Visual C++ gefunden und werde mir das mal anschauen. Es wäre mir aber lieber, den gcc weiterhin verwenden zu können, zumal ich von Visual C++ nicht so angetan bin und das Einrichten von gtkmm für Visual C++ auch recht aufwändig aussieht.



  • basti33 schrieb:

    So, ziemlich viel. Hoffe du kannst was damit anfangen.

    Jo, knall mal
    export PKG_CONFIG_PATH = /usr/local/lib/pkgconfig

    Da rein. Bzw. ersetze den Pfad zu pkgconfig, wohin du ihn installiert hast.

    Ansonsten: Hast du eine .bashrc in deinem cygwin home-Verzeichnis?

    P.S.: Der Sinn des Tutorials aus der FAQ erschließt sich mir irgendwie nicht so ganz.

    Äh, ich war halt zu faul, ständig Fragen zu "Wie benutze ich gtkmm mit VC++" zu beantworten. Daher das tut. Komischerweise kommen ungefähr seit dem Zeitpunkt keine Fragen mehr, wie man GTK+ bzw. gtkmm unter Win mit dem VS einrichtet... entweder nach dem Tut ist alles klar oder alle sind verstört/verängstigt und nehmen doch lieber die WinAPI oder die .NET WinForms 😃

    [...] und das Einrichten von gtkmm für Visual C++ auch recht aufwändig aussieht.

    1. VC++ installieren
    2. gtkmm installieren
    3. Projekt Template benutzen
    4. Fertig.

    😉


Anmelden zum Antworten