GTKmm Tutorial Teil 1



  • Danke, alles was

    pkg-config --cflags gtkmm-2.4
    

    zurückliefert habe ich bei Edit->Options->Directories->Include files hinzugefügt.
    Nur damit habe ich nichts anfangen können:

    /home/ivan/cross/build/include/cairo

    pkg-config --libs gtkmm-2.4
    

    liefert mir das:
    -LC:/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 -lgl
    ib-2.0 -lintl -liconv

    Das müsste ich wohl bei Edit->Options->Directories->Libraray files hinzufügen, nur wie? 😕

    Tschuldigung wenn ich mich doof anstelle. 😕



  • "/home/ivan/cross/build/include/cairo" ist ein Fehler das gehört da nicht hin.

    Ich weiß nicht wie es bei MinGWStudio aussieht da kann ich dir leider nicht helfen.

    Aber auf jeden fall muss es zu den Linkeroptionen

    😕



  • So, hier hab ich was gefunden, nämlich das Template für GTK-Anwendungen.
    Das hab ich gleich mal anzupassen versucht:

    Original:

    [Project]
    name=
    type=4
    defaultConfig=0
    
    [Debug]
    // compiler 
    workingDirectory=
    arguments=
    intermediateFilesDirectory=Debug
    outputFilesDirectory=Debug
    compilerPreprocessor=
    extraCompilerOptions=-mms-bitfields
    compilerIncludeDirectory=gtk-2.0,gtk-2.0\include,atk-1.0,pango-1.0,glib-2.0,glib-2.0\include
    noWarning=0
    defaultWarning=0
    allWarning=1
    extraWarning=0
    isoWarning=0
    warningsAsErrors=0
    debugType=1
    debugLevel=2
    exceptionEnabled=1
    runtimeTypeEnabled=1
    optimizeLevel=0
    
    // linker
    libraryPath=
    outputFilename=
    libraries=gtk-win32-2.0,gdk-win32-2.0,atk-1.0,gdk_pixbuf-2.0,pangowin32-1.0,gdi32,pango-1.0,gobject-2.0,gmodule-2.0,glib-2.0,intl
    extraLinkerOptions=
    ignoreStartupFile=0
    ignoreDefaultLibs=0
    stripExecutableFile=0
    
    // archive
    extraArchiveOptions=
    
    //resource
    resourcePreprocessor=
    resourceIncludeDirectory=
    extraResourceOptions=
    
    [Release]
    // compiler 
    workingDirectory=
    arguments=
    intermediateFilesDirectory=Release
    outputFilesDirectory=Release
    compilerPreprocessor=
    extraCompilerOptions=-mms-bitfields
    compilerIncludeDirectory=gtk-2.0,gtk-2.0\include,atk-1.0,pango-1.0,glib-2.0,glib-2.0\include
    noWarning=0
    defaultWarning=0
    allWarning=1
    extraWarning=0
    isoWarning=0
    warningsAsErrors=0
    debugType=0
    debugLevel=0
    exceptionEnabled=1
    runtimeTypeEnabled=1
    optimizeLevel=2
    
    // linker
    libraryPath=
    outputFilename=
    libraries=gtk-win32-2.0,gdk-win32-2.0,atk-1.0,gdk_pixbuf-2.0,pangowin32-1.0,gdi32,pango-1.0,gobject-2.0,gmodule-2.0,glib-2.0,intl
    extraLinkerOptions=
    ignoreStartupFile=0
    ignoreDefaultLibs=0
    stripExecutableFile=1
    
    // archive
    extraArchiveOptions=
    
    //resource
    resourcePreprocessor=
    resourceIncludeDirectory=
    extraResourceOptions=
    
    [Source]
    
    [Header]
    
    [Resource]
    
    [Other]
    
    [History]
    

    Modifizierte Version:
    http://codepad.org/jcElAQzH

    Es lässt sich jetzt kompillieren und linken, wenn ich das Programm ausführe öffnet sich aber ein Konsolenfenster und es erscheint folgende Fehlermeldung:
    test.exe - Einsprungpunkt nicht gefunden
    Der Prozedureinsprungpunkt "XML_SetDoctypeDeclHandler" wurde in der DLL "xmlparse.dll" nicht gefunden.

    Danach steht im geöffneten Konsolenfenster:
    Terminated with return code 128
    Press any key to continue ...

    Ich hoffe du weißt damit was anzufangen. :xmas1:



  • Hmm das kommt mir bekannt vor. Ich glaub das ist ein Fehler in den GTK Binaries für Windows.

    Guck mal ob du irgendwo eine ältere version der GTK binaries auftreiben kannst ( GTK nicht GTKmm )

    BR

    evilissimo



  • 2.6.1 rc1:
    Einsprungpunkt nicht gefunden
    Der Prozedureinsprungpunkt "g_build_filenamev" wurde in der DLL "libglib-2.0-0.dll" nicht gefunden.

    2.4.1 rc1:
    Einsprungpunkt nicht gefunden
    Der Prozedureinsprungpunkt "g_assert_warning" wurde in der DLL "libglib-2.0-0.dll" nicht gefunden.

    😞
    hab jetzt aber auch grad nicht die zeit und lust mich damit sonderlich ausführlich zu beschäftigen, werde mir das morgen nochmal genauer ansehen.



  • Dann hast du warscheinlich eine ältere/andere Runtime Version von GTK+ auf dem system und das beist sich ( z.b. von Dia oder Gimp ) Da hilft nur alle GTK+ sachen zu deinstallieren und dann erst mal das GTK+ Develpaket installieren und dann wieder Gimp oder was man an Anwendungen so verwendet.

    BR



  • Nabend,

    wenn ich daheim bin, kann ich dir gerne meine Installation packen und zum Download
    zur Verfuegung stellen. Kann dir auch, alternativ, die Packete, die ich zur
    Installation genutzt habe, zur Verfuegung stellen, falls du mir dahingehend vertraust,
    dass die selbstentpackenden Archive nicht boesartig modifiziert sind (kann dir hier
    lediglich mein Wort geben).

    Wo genau ich die runtergeladen habe, weiss ich nicht auswendig. Weiss aber, dass man
    von der gtkmm-Homepage auf diese Seiten kommt. Koenntest da hoechstens nochmal nach
    suchen.

    mfg
    v R



  • Danke danke, es läuft jetzt! 🙂
    Ich hab jetzt die selbe Kombination aus GTK und GTKmm wie linlinlin auf Seite 2 verwendet, danach nochmal die Variablen von pkg-config neu eingetragen und nun funktioniert es. 🙂

    Wenn ich das Programm jetzt öffne, startet aber auch ein Konsolenfenster, ist das normal?



  • Ist normal unter Windows, kann man aber abstellen:

    #ifdef _WIN32
    #include <windows.h>
    #endif
    
    int main() {
      #ifdef _WIN32
        FreeConsole();
      #endif
    
      //...weiterer Code
      return 0;
    };
    


  • oder man übergibt einfach als linker option -mwindows wenn man mit MinGW compiliert

    🤡

    Was mich jetzt interessieren Würde ob das dann auch bei Warnungen funktioniert. Wenn ja wäre das sehr interessant 🙂 :xmas2:



  • evilissimo schrieb:

    Was mich jetzt interessieren Würde ob das dann auch bei Warnungen funktioniert. Wenn ja wäre das sehr interessant 🙂 :xmas2:

    Kann dir nicht folgen, wie meinst du das?



  • Danke für die beiden Lösungen, funktionieren beide bestens. 🙂
    Jetzt läuft alles einwandfrei. *freu* 👍



  • GPC schrieb:

    evilissimo schrieb:

    Was mich jetzt interessieren Würde ob das dann auch bei Warnungen funktioniert. Wenn ja wäre das sehr interessant 🙂 :xmas2:

    Kann dir nicht folgen, wie meinst du das?

    Naja wenn GTK+ warnungen ausgibt öffnet sich immer ein Konsolen Fenster auch mit -mwindows. Ich würde gerne wissen ob das fenster dann gar nicht erst aufgeht wenn man deine Technik verwendet

    🙂

    Evtl hast du das schon mal bei Gimp oder Dia gesehen falls du das überhaupt benutzt.



  • evilissimo schrieb:

    GPC schrieb:

    evilissimo schrieb:

    Was mich jetzt interessieren Würde ob das dann auch bei Warnungen funktioniert. Wenn ja wäre das sehr interessant 🙂 :xmas2:

    Kann dir nicht folgen, wie meinst du das?

    Naja wenn GTK+ warnungen ausgibt öffnet sich immer ein Konsolen Fenster auch mit -mwindows. Ich würde gerne wissen ob das fenster dann gar nicht erst aufgeht wenn man deine Technik verwendet

    Ach jetzt, also meines Wissens geht nix auf, aber ich programmiere mit Gtkmm primär eh unter/für Linux. Du hast es ja unter Win installiert, oder? Würdest du mir mal einen Gefallen tun und ein Gtkmm Programm von mir kompilieren und testen, wie es sich unter Windows verhält? Ich würde dir den tarball per C++ - Account schicken. Keine Angst, ich schick dir keine Viren oder ähnliches. 🙂

    Evtl hast du das schon mal bei Gimp oder Dia gesehen falls du das überhaupt benutzt.

    Ja, ist mir bekannt, und nochmal ja, ich benutze Gimp (so gut ich kann, bin kein guter Grafik-Designer 😞 ). Aber ich benutze es unter Linux, da geht keine Konsole auf 😉



  • Na dann schick mal *g*

    BR

    evilissimo



  • Ich weis ja net was für nen C++ Account du genau gemeint hast aber auf m FTP ist nix und ne mail hab ich auch net bekommen.

    KI mehr?

    Naja mir egal. Meld dich einfach wenn ich es kompilieren soll.

    BR
    evilissimo



  • Sorry, um halb acht war ich noch nicht daheim. Jetzt müsstest du sie eigentlich haben, hab sie an evilissimo Klammeraffe c-plusplus Punkt de geschickt.

    EDITS: Email entschärft und Zeit korrigiert *grml*



  • evilissmo: kannst du vielleicht für diejenigen, die eine Fortsetzung deines Tuts nicht erwarten können, irgendeine Lektüre empfehlen?



  • Problem: Es gibt kein Buch zu gtkmm. Alles was es (umfangreiches) gibt ist das Tutorial der Gtkmm-Leutchen (aber ich schätze mal, du kennst das schon): http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/index.html



  • Posting an der falschen Stelle, bitte ignorieren.


Anmelden zum Antworten