GTKmm Tutorial Teil 1



  • 1000 dank schon mal für den support.
    habe jetzt den neuen Dev-C++ installiert.
    super sache mit deinem installer, der automatisch generierte code lässt sich kompilieren :), aber leider nicht ausführen 😡 .
    Die Fehlermaldung sagt, dass der Prozedureinstiegspunkt libconv_set_relocation_prefix in der iconv.dll nicht gefunden wurde.
    Kannst du damit was anfangen?



  • ok, ich habe nachgelesen, dass dies passieren kann wenn man mehrere (unterschiedliche) versionen der gleichen dll's auf dem rechner hat, und wenn mit der einen compiliert wird und die andere aufgerufen wird bei der programmausführung - shit...
    habe also eine dll umbenannt, und es folgt eine andere fehlermeldung, toll!

    keine ahnung was ich jetzt tun soll, alles nochmal deinstallieren und neu installieren, habe allerdings auch eine laufende c++ eclipse umgebung die ich eigentlich nicht zerstören wollte weil das mühsam war die zum laufen zu bekommen.... 😕



  • linlinlin schrieb:

    ok, ich habe nachgelesen, dass dies passieren kann wenn man mehrere (unterschiedliche) versionen der gleichen dll's auf dem rechner hat, und wenn mit der einen compiliert wird und die andere aufgerufen wird bei der programmausführung - shit...
    habe also eine dll umbenannt, und es folgt eine andere fehlermeldung, toll!

    keine ahnung was ich jetzt tun soll, alles nochmal deinstallieren und neu installieren, habe allerdings auch eine laufende c++ eclipse umgebung die ich eigentlich nicht zerstören wollte weil das mühsam war die zum laufen zu bekommen.... 😕

    Eine möglichkeite wäre es sämtlich GTK+ Programme und libraries zu deinstallieren und neu zu installieren
    Und ein Reboot wäre auch gut dazwischen ( zwischen deinstall und install )

    😉

    Achja und du solltest die Development libs vorher installieren.



  • 🙂 1000 dank evilissimo, es funktioniert jetzt alles!! 🙂

    falls jemand ähnliche probleme hat, hier meine anleitung was ich gemacht habe.
    1. alles was mit c++ zu tun hat deinstalliert
    2. minGW + msys installiert als compiler umgebung für c/c++
    3. gtk-win32-devel-2.6.10-rc1.exe installiert
    4. gtkmm-devel-2.6.2-1.exe installiert
    5. devcpp-4.9.9.2_nomingw_setup.exe installiert
    dann konnte ich den installer von evilissimo benutzen und alles läuft.
    vorsicht manche versionen von gtk und gtkmm vertragen sich nicht.

    hilfreich fand ich u.a. folgenden artikel:
    http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/ape.html

    freue mich jetzt auf deinen 2ten teil vom tutorial.

    Falls jemand eine Möglichkeit kennt wie ich Eclipse konfigurieren kann,
    um gtkmm-projekte zu kompilieren wäre ich sehr dankbar, das hier zu posten bzw zu linken. Selber habe ich da noch nix gefunden...

    gruss + nochmals danke, lin



  • Toller Artikel! Du bist auf dem besten Weg, mich endlich von MFC wegzubringen 😛 *aufatem*.



  • Habe dein Tutorial auch gemacht und würde mich sehr über einen 2. Teil freuen 🙂



  • Das erste GTKmm Tutorial steht jetzt auch als PDF zum Download bereit.

    GTKmm Tutorial Teil 1 ( PDF )



  • So, jetzt wollte ich mir GTK auch endlich mal installieren, bekomme es aber auch nicht zum laufen. 😞

    Ich verwende als IDE MinGWStudio, mein Problem liegt darin, dass ich nicht weiß wohin ich "gtk-win32-devel-2.8.8-rc2.exe" und "gtkmm-devel-2.8.1-1.exe" installieren lassen soll, damit das MingGWStudio die include-Dateien findet. 😕



  • Du kannst ja in der IDE die Pfade hinzufügen.



  • Jep, aber da kam trotzdem eine file not found Meldung.
    Ich habe jetzt nochmal alles neu installiert, scheint jetzt zu funktionieren, er kompilliert den Code, kann die exe aber nicht ausführen.

    Bei Project kann ich nur "GTK+ Application" auswählen, ich will aber GTKmm oder?
    Kann man das irgendwie hinzufügen?



  • kann die exe aber nicht ausführen.

    Runtime Libraries mitinstalliert? Pfade gesetzt?

    ich will aber GTKmm oder?

    Ich würde wollen.

    Kann man das irgendwie hinzufügen?

    AFAIK nicht.



  • Klar habe ich die Runtime-Libs mitinstalliert, welche Pfade meinst du?



  • Er meint die Pfade die pkg-config ausspuckt wenn du es in der Konsole ausführst.

    Die Include Pfade die du alle einbinden musst bekommst du mit

    pkg-config --cflags gtkmm-2.4
    

    und alles libs und Pfade zu den libs bekommst du mit

    pkg-config --libs gtkmm-2.4
    

    das musst du dann alles mit angeben damit du dein projekt compilieren kannst.

    BR
    evilissimo



  • 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


Anmelden zum Antworten