gtkmm



  • Kann mir bitte jemand mal erklären wie GENAU man gtkmm unter Windows XP und Code::Blocks installiert und einrichtet? Ich habe mir folgendes von hier (http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/) runtergeladen und in den Standartpfad installiert:

    ~gtkmm-win32-devel-2.10.8-1.exe
    ~gtkmm-win32-runtime-2.10.8-1.exe

    Von hier an komme ich nich mehr weiter und alle Anleitungen die ich gefunden habe haben mir auch nicht weitergeholfen. Die homepage von gtkmm liefert hierzu auch keine genauere Anleitung. Ich hoffe ihr könnt es mir villeicht erklären, denn langsam werde ich ziemlich frustriert 😞



  • Ich hab dafür beim ersten mal auch ein Weilchen gebraucht. Sind ziemlich viele Libraries, die du zum linken brauchst. Deshalb hab ich mir dafür ein Usertemplate gemacht.

    Erstelle unter Dokumente und Einstellungen\...\Anwendungsdaten\codeblocks\UserTemplates einen neuen Ordner GTKmm_Application. In diesen Ordner muss nun eine einfache main.cpp. Z.B.

    #include <gtkmm.h>
    
    int main(int argc, char *argv[])
    {
        Gtk::Main main_obj(argc, argv);
        Gtk::Window window_obj;
        main_obj.run(window_obj);
        return 0;
    }
    

    Desweiteren muss in diesen Ordner noch eine Projektdatei GTKmm_Application.cbp mit folgendem Inhalt:

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <CodeBlocks_project_file>
    	<FileVersion major="1" minor="6" />
    	<Project>
    		<Option title="GTKmm_Application" />
    		<Option pch_mode="2" />
    		<Option compiler="gcc" />
    		<Build>
    			<Target title="Debug">
    				<Option output="bin\Debug\GTKmm_Application.exe" prefix_auto="1" extension_auto="1" />
    				<Option object_output="obj\Debug\" />
    				<Option type="0" />
    				<Option compiler="gcc" />
    				<Compiler>
    					<Add option="-g" />
    				</Compiler>
    			</Target>
    			<Target title="Release">
    				<Option output="bin\Release\GTKmm_Application.exe" prefix_auto="1" extension_auto="1" />
    				<Option object_output="obj\Release\" />
    				<Option type="1" />
    				<Option compiler="gcc" />
    				<Compiler>
    					<Add option="-O2" />
    				</Compiler>
    				<Linker>
    					<Add option="-s" />
    				</Linker>
    			</Target>
    		</Build>
    		<Compiler>
    			<Add option="-Wall" />
    			<Add directory="$(GTK_BASEPATH)\include\atk-1.0" />
    			<Add directory="$(GTK_BASEPATH)\include\atkmm-1.6" />
    			<Add directory="$(GTK_BASEPATH)\include\cairo" />
    			<Add directory="$(GTK_BASEPATH)\include\gdkmm-2.4" />
    			<Add directory="$(GTK_BASEPATH)\include\glib-2.0" />
    			<Add directory="$(GTK_BASEPATH)\include\glibmm-2.4" />
    			<Add directory="$(GTK_BASEPATH)\include\gtk-2.0" />
    			<Add directory="$(GTK_BASEPATH)\include\gtkmm-2.4" />
    			<Add directory="$(GTK_BASEPATH)\include\libglade-2.0" />
    			<Add directory="$(GTK_BASEPATH)\include\libglademm-2.4" />
    			<Add directory="$(GTK_BASEPATH)\include\libxml2" />
    			<Add directory="$(GTK_BASEPATH)\include\libxml++-2.4" />
    			<Add directory="$(GTK_BASEPATH)\include\pango-1.0" />
    			<Add directory="$(GTK_BASEPATH)\include\pangomm-1.4" />
    			<Add directory="$(GTK_BASEPATH)\include\sigc++-2.0" />
    			<Add directory="$(GTK_BASEPATH)\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\gdkmm-2.4\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\glib-2.0\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\glibmm-2.4\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\gtk-2.0\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\gtkmm-2.4\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\libglade\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\libglademm-2.4\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\libxml++-2.6\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\pango\include" />
    			<Add directory="$(GTK_BASEPATH)\lib\sigc++-2.0\include" />
    		</Compiler>
    		<Linker>
    			<Add library="gtkmm-2.4" />
    			<Add library="gdkmm-2.4" />
    			<Add library="atkmm-1.6" />
    			<Add library="pangomm-1.4" />
    			<Add library="glibmm-2.4" />
    			<Add library="sigc-2.0" />
    			<Add library="gdi32" />
    			<Add library="glademm-2.4" />
    			<Add library="z" />
    			<Add library="ws2_32" />
    			<Add library="gtk-win32-2.0" />
    			<Add library="gdk-win32-2.0" />
    			<Add library="atk-1.0" />
    			<Add library="gdk_pixbuf-2.0" />
    			<Add library="pangowin32-1.0" />
    			<Add library="pango-1.0" />
    			<Add library="gobject-2.0" />
    			<Add library="gmodule-2.0" />
    			<Add library="glib-2.0" />
    			<Add library="intl" />
    			<Add library="iconv" />
    			<Add library="glade-2.0" />
    			<Add library="xml2" />
    			<Add directory="$(GTK_BASEPATH)\lib" />
    		</Linker>
    		<Unit filename="main.cpp" />
    		<Extensions>
    			<code_completion />
    		</Extensions>
    	</Project>
    </CodeBlocks_project_file>
    

    Und jetzt kannst du einfach in CodeBlocks ein neues Projekt erstellen. Wählst als Typ halt unter UserTemplates GTKmm-Application aus und probierst das mal zu kompilieren und zu starten.



  • ok, so weit so gut nur wenn ich kompiliere bekomme ich eine fehlermeldung:

    F:\Programme\CodeBlocks\lib/libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status

    woran liegt das?



  • Hmm. Also bei mir funktioniert dieses Usertemplate. D.h. ich kann es kompilieren, ausführen und sehe ein einfaches Gtkmm-Fenster. Warum du jetzt diesen Linker-Fehler bekommst kann ich dir leider nicht sagen. Tut mir leid.



  • alfonsospringer schrieb:

    ok, so weit so gut nur wenn ich kompiliere bekomme ich eine fehlermeldung:

    F:\Programme\CodeBlocks\lib/libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status

    woran liegt das?

    Wieso versiehst du die Datei mit einer .c Endung? Das sollte .cpp oder .cc sein.
    Außerdem scheint es mir so, als ob du da etwas à la "DOS-Programm" bei den Projekt-Optionen ausgewählt hast. Schau mal nach Win32-Console oder ähnlichem.

    In der FAQ gibt's auch einen Beitrag, wie man gtkmm unter Win an's Laufen kriegt.


Anmelden zum Antworten