[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.pngcode:
#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.0jetzt 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ügenNeustarten (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.