[gtkmm] Installation unter Code::Blocks - GELÖST



  • danke für die antwort, hab alles soweit eingebunden:

    options:
    http://img295.imageshack.us/my.php?image=optionszr3.png

    code:

    #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;
    }
    

    ausgabe:

    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\Programme\CodeBlocks\lib\
    --------------------------------------------------------------------------------
    Switching to target: default
    mingw32-g++.exe    -Os     -IC:\Programme\CodeBlocks\include -IC:\Programme\GTK\include\cairo -IC:\Programme\GTK\include\libglade-2.0 -IC:\Programme\GTK\include\gtk-2.0 -IC:\Programme\GTK\include\glib-2.0 -IC:\Programme\GTK\lib\glib-2.0\include -IC:\Programme\GTK\lib\gtk-2.0\include -IC:\Programme\GTK\include\pango-1.0 -IC:\Programme\GTK\include\atk-1.0 -IC:\Programme\GTK\include\libxml2 -IC:\Programme\GTK\include -IC:\Programme\GTK\include\libglademm-2.4 -IC:\Programme\GTK\lib\libglademm-2.4\include -IC:\Programme\GTK\include\gtkmm-2.4 -IC:\Programme\GTK\lib\gtkmm-2.4\include -IC:\Programme\GTK\include\glibmm-2.4 -IC:\Programme\GTK\lib\glibmm-2.4\include -IC:\Programme\GTK\include\gdkmm-2.4 -IC:\Programme\GTK\lib\gdkmm-2.4\include -IC:\Programme\GTK\include\atkmm-1.6 -IC:\Programme\GTK\include\sigc++-2.0 -IC:\Programme\GTK\lib\sigc++-2.0\include -c main.cpp -o .objs\main.o
    In file included from C:/Programme/GTK/include/gdkmm-2.4/gdkmm/gc.h:31,
                     from C:/Programme/GTK/include/gdkmm-2.4/gdkmm.h:29,
                     from C:/Programme/GTK/include/gtkmm-2.4/gtkmm.h:30,
                     from main.cpp:1:
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:30:26: pangomm/font.h: No such file or directory
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:31:28: pangomm/layout.h: No such file or directory
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:32:32: pangomm/layoutline.h: No such file or directory
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:33:33: pangomm/glyphstring.h: No such file or directory
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:40:29: cairomm/context.h: No such file or directory
    In file included from C:/Programme/GTK/include/gdkmm-2.4/gdkmm/gc.h:31,
                     from C:/Programme/GTK/include/gdkmm-2.4/gdkmm.h:29,
                     from C:/Programme/GTK/include/gtkmm-2.4/gtkmm.h:30,
                     from main.cpp:1:
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:331: error: `Pango' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:331: error: `Pango' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:331: error: expected `,' or `...' before '&' token
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:331: error: ISO C++ forbids declaration of `GlyphString' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:345: error: `Pango' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:345: error: ISO C++ forbids declaration of `type name' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:345: error: missing `>' to terminate the template argument list
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:345: error: template argument 1 is invalid
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:345: error: expected `,' or `...' before '>' token
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:345: error: ISO C++ forbids declaration of `LayoutLine' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:362: error: `Pango' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:362: error: ISO C++ forbids declaration of `type name' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:362: error: missing `>' to terminate the template argument list
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:362: error: template argument 1 is invalid
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:362: error: expected `,' or `...' before '>' token
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:362: error: ISO C++ forbids declaration of `LayoutLine' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:362: error: `void Gdk::Drawable::draw_layout_line(const Glib::RefPtr<const Gdk::GC>&, int, int, int)' and `void Gdk::Drawable::draw_layout_line(const Glib::RefPtr<const Gdk::GC>&, int, int, int)' cannot be overloaded
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:378: error: `Pango' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:378: error: ISO C++ forbids declaration of `type name' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:378: error: missing `>' to terminate the template argument list
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:378: error: template argument 1 is invalid
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:378: error: expected `,' or `...' before '>' token
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:378: error: ISO C++ forbids declaration of `Layout' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:397: error: `Pango' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:397: error: ISO C++ forbids declaration of `type name' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:397: error: missing `>' to terminate the template argument list
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:397: error: template argument 1 is invalid
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:397: error: expected `,' or `...' before '>' token
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:397: error: ISO C++ forbids declaration of `Layout' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:397: error: `void Gdk::Drawable::draw_layout(const Glib::RefPtr<const Gdk::GC>&, int, int, int)' and `void Gdk::Drawable::draw_layout(const Glib::RefPtr<const Gdk::GC>&, int, int, int)' cannot be overloaded
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:585: error: `Cairo' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:585: error: ISO C++ forbids declaration of `RefPtr' with no type
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/drawable.h:585: error: expected `;' before '<' token
    In file included from C:/Programme/GTK/include/gdkmm-2.4/gdkmm.h:44,
                     from C:/Programme/GTK/include/gtkmm-2.4/gtkmm.h:30,
                     from main.cpp:1:
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: `::Cairo' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: variable or field `set_source_color' declared void
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: `RefPtr' was not declared in this scope
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: `::Cairo' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: `Context' was not declared in this scope
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: `context' was not declared in this scope
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: expected primary-expression before "const"
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:46: error: initializer expression list treated as compound expression
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:56: error: `::Cairo' has not been declared
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:56: error: variable or field `set_source_pixbuf' declared void
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:56: error: `RefPtr' was not declared in this scope
    C:/Programme/GTK/include/gdkmm-2.4/gdkmm/general.h:56: error: `::Cairo' has not been declared
    Process terminated with status 1 (0 minutes, 6 seconds)
    


  • so ich hab jetzt mal noch folgendes hinzugefügt:
    C:\Programme\GTK\include\pangomm-1.4
    C:\Programme\GTK\include\cairomm-1.0

    jetzt gehts soweit aber ich kriege noch folgende fehlermeldungen:

    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\Programme\CodeBlocks\lib\
    --------------------------------------------------------------------------------
    Switching to target: default
    mingw32-g++.exe    -LC:\Programme\CodeBlocks\lib -LC:\Programme\GTK\lib\gtk-win32-2.0.lib -LC:\Programme\GTK\lib\gdk-win32-2.0.lib -LC:\Programme\GTK\lib\atk-1.0.lib -LC:\Programme\GTK\lib\gdk_pixbuf-2.0.lib -LC:\Programme\GTK\lib\pangowin32-1.0.lib -LC:\Programme\GTK\lib\pango-1.0.lib -LC:\Programme\GTK\lib\gobject-2.0.lib -LC:\Programme\GTK\lib\gmodule-2.0.lib -LC:\Programme\GTK\lib\glib-2.0.lib -LC:\Programme\GTK\lib\intl.lib -LC:\Programme\GTK\lib\iconv.lib -LC:\Programme\GTK\lib\glade-2.0.lib -LC:\Programme\GTK\lib\xml2.lib -LC:\Programme\GTK\lib\gtkmm-2.4.lib -LC:\Programme\GTK\lib\gdkmm-2.4.lib -LC:\Programme\GTK\lib\atkmm-1.6.lib -LC:\Programme\GTK\lib\pangomm-1.4.lib -LC:\Programme\GTK\lib\glibmm-2.4.lib -LC:\Programme\GTK\lib\sigc-2.0.lib -LC:\Programme\GTK\lib\gdi32.lib -LC:\Programme\GTK\lib\libglademm-2.4.lib -LC:\Programme\GTK\lib\z.lib -LC:\Programme\GTK\lib\ws2_32.lib -o C:\Programme\CodeBlocks\lib\console.exe .objs\main.o      -s -static   
    .objs\main.o:main.cpp:(.text+0x4c): undefined reference to `Gtk::Main::Main(int&, char**&, bool)'
    .objs\main.o:main.cpp:(.text+0x61): undefined reference to `Gtk::Window::Window(Gtk::WindowType)'
    .objs\main.o:main.cpp:(.text+0x73): undefined reference to `Gtk::Main::run(Gtk::Window&)'
    .objs\main.o:main.cpp:(.text+0x83): undefined reference to `Gtk::Window::~Window()'
    .objs\main.o:main.cpp:(.text+0xa7): undefined reference to `Gtk::Window::~Window()'
    .objs\main.o:main.cpp:(.text+0xb8): undefined reference to `Gtk::Main::~Main()'
    .objs\main.o:main.cpp:(.text+0xdd): undefined reference to `Gtk::Main::~Main()'
    .objs\main.o:main.cpp:(.text+0x127): undefined reference to `Glib::ustring::ustring(char const*)'
    .objs\main.o:main.cpp:(.text+0x13c): undefined reference to `Glib::ustring::ustring(char const*)'
    .objs\main.o:main.cpp:(.text+0x151): undefined reference to `Glib::ustring::ustring(char const*)'
    .objs\main.o:main.cpp:(.text+0x166): undefined reference to `Glib::ustring::ustring(char const*)'
    .objs\main.o:main.cpp:(.text+0x17b): undefined reference to `Glib::ustring::ustring(char const*)'
    .objs\main.o:main.cpp:(.text+0x190): more undefined references to `Glib::ustring::ustring(char const*)' follow
    .objs\main.o:main.cpp:(.text+0x1be): undefined reference to `Glib::ustring::~ustring()'
    .objs\main.o:main.cpp:(.text+0x1cd): undefined reference to `Glib::ustring::~ustring()'
    .objs\main.o:main.cpp:(.text+0x1dc): undefined reference to `Glib::ustring::~ustring()'
    .objs\main.o:main.cpp:(.text+0x1eb): undefined reference to `Glib::ustring::~ustring()'
    .objs\main.o:main.cpp:(.text+0x1fa): undefined reference to `Glib::ustring::~ustring()'
    .objs\main.o:main.cpp:(.text+0x209): more undefined references to `Glib::ustring::~ustring()' follow
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    

    hab hier http://www.c-plusplus.net/forum/viewtopic-var-t-is-169230.html
    gelesen dass das an den .lib 's liegt, also hab ich die dll.a noch hinzugefügt
    aber es will immer noch nicht - an der fehlermeldung hat sich nichts geändert.

    hier mal meine einstellungen (hab jetzt einfach mal alles geaddet dh dll.a und lib):
    http://img515.imageshack.us/img515/7606/optionsrd4.png

    [EDIT001]
    hab gerade festgestellt dass die dateien
    . libws2_32.dll.a und
    . libgdi32.dll.a
    nicht existieren o.O kann das daran liegen?

    [EDIT002]
    habe meine einstellungen jetzt geändert
    und die beiden dateien einfach draussen gelassen.
    ausserdem habe ich die libaries falsch eingetragen gehabt.
    anstatt: 'directories -> linker' jetzt unter gleich unter 'linker'

    -> keine fehler mehr beim kompilieren aber zur laufzeit folgender:

    Die Anwendung konnte nicht gestartet werden, weil libglibmm-2.4-1.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.
    

    [EDIT003]
    scheint mir fast so als wäre keine runtime installiert aber die
    ist doch bei dem devel package dabei oder?!



  • Hallo,

    ja, bei der devel ist die Runtime dabei. Schau mal, wo besagte DLL liegt und warum sie nicht gefunden wird (hast du die Systempfade angepasst) ?

    MfG

    GPC



  • die besagte dll liegt im GTK/bin directory.
    sobald ich die kompilierte exe dorthin kopiere funktionierts auch ;).
    aber ich möchte das programm ja auch von woanders aus starten können.
    systempfade anpassen? hab ich da was übersehen? wo muss ich das machen?!



  • Jo, schau mal da:
    Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen -> Dann ins untere Fenster und "Path" suchen -> Da dann C:\GTK\bin (oder wo's auch immer liegt) hinzufügen

    Neustarten (glaub ich).



  • ahso vielen dank jetzt funktioniert es endlich 🙂

    ich hätte da aber noch eine frage:
    wenn ich das programm weitergebe, dann muss doch der benutzer
    auch die runtime installiert haben oder reicht das mitliefern der
    benötigten dll's und welche sind das dann?



  • Ja, der User muss die Runtimes installiert haben, wobei die DLLs im Prinzip die Runtime darstellen. Egal, das kann man ja in einen Installer verpacken.



  • naja aber einen extra installer für ein kleines programm - ich weiß nicht 😃



  • wenn ich keine dll's mitliefern möchte,
    bzw ich nicht möchte dass eine runtime installiert werden muss
    bleibt mir eigentlich nur winapi - oder?



  • Kannst auch FLTK, FOX, SmartWin++ oder wxWidgets nehmen. Mußt nicht direkt die WinAPI benutzen.

    Aber die gtkmm-Runtime zu installieren ist doch kein großer Akt? Jeder der z.B. GIMP benutzt, muß es auch installieren.


Anmelden zum Antworten