GTKmm mit Code::Blocks
-
Mit MinGW gibts folgende Meldung:
.objs\main.o:main.cpp:(.text+0x18c): undefined reference to `Gtk::Main::Main(int&, char**&, bool)' .objs\main.o:main.cpp:(.text+0x1a9): undefined reference to `Gtk::Window::Window(Gtk::WindowType)' .objs\main.o:main.cpp:(.text+0x1be): undefined reference to `Gtk::Main::run(Gtk::Window&)' .objs\main.o:main.cpp:(.text+0x1d3): undefined reference to `Gtk::Window::~Window()' .objs\main.o:main.cpp:(.text+0x1e8): undefined reference to `Gtk::Main::~Main()' .objs\main.o:main.cpp:(.text+0x232): undefined reference to `Gtk::Window::~Window()' .objs\main.o:main.cpp:(.text+0x25f): undefined reference to `Gtk::Main::~Main()' collect2: ld returned 1 exit status
Dabei benutze ich dieselben Einstellungen/Pfade wie beim VC 7.1/8
-
ähm ja genau. *fg*
Zeig mal dein Makefile oder Settings (wie auch immer) für MinGW
BR
Vinzenz
-
Hmm, also da hab ich einfach alle Ordner und Dateien reingetan, die mir verdächtig vorkamen
keine Compiler-Flags und sonstige Optionen/Defines.
Link libraries:
G:\Programme\GTK\lib\art_lgpl_2.lib
G:\Programme\GTK\lib\asprintf.lib
G:\Programme\GTK\lib\atk-1.0.lib
G:\Programme\GTK\lib\atkmm-1.6.lib
G:\Programme\GTK\lib\atkmm-1.6d.lib
G:\Programme\GTK\lib\bz2.lib
G:\Programme\GTK\lib\cairo.lib
G:\Programme\GTK\lib\chartset.lib
G:\Programme\GTK\lib\fontconfig.lib
G:\Programme\GTK\lib\freetype.lib
G:\Programme\GTK\lib\gdk_pixbuf-2.0.lib
G:\Programme\GTK\lib\gdkglext-win32-1.0.lib
G:\Programme\GTK\lib\gdkmm-2.4.lib
G:\Programme\GTK\lib\gdkmm-2.4d.lib
G:\Programme\GTK\lib\gdk-win32-2.0.lib
G:\Programme\GTK\lib\glade-2.0.lib
G:\Programme\GTK\lib\glademm-2.4.lib
G:\Programme\GTK\lib\glib-2.0.lib
G:\Programme\GTK\lib\glibmm-2.4.lib
G:\Programme\GTK\lib\glibmm-2.4d.lib
G:\Programme\GTK\lib\gmodule-2.0.lib
G:\Programme\GTK\lib\gobject-2.0.lib
G:\Programme\GTK\lib\gthread-2.0.lib
G:\Programme\GTK\lib\gtkglext-win32-1.0.lib
G:\Programme\GTK\lib\gtkmm-2.4.lib
G:\Programme\GTK\lib\gtkmm-2.4d.lib
G:\Programme\GTK\lib\gtk-win32-2.0.lib
G:\Programme\GTK\lib\iconv.lib
G:\Programme\GTK\lib\intl.lib
G:\Programme\GTK\lib\jpeg.lib
G:\Programme\GTK\lib\pango-1.0.lib
G:\Programme\GTK\lib\pangocairo-1.0.lib
G:\Programme\GTK\lib\pangoft2-1.0.lib
G:\Programme\GTK\lib\pangomm-1.4.lib
G:\Programme\GTK\lib\pangomm-1.4d.lib
G:\Programme\GTK\lib\pangowin32-1.0.lib
G:\Programme\GTK\lib\png.lib
G:\Programme\GTK\lib\popt.lib
G:\Programme\GTK\lib\sigc-2.0.lib
G:\Programme\GTK\lib\sigc-2.0d.lib
G:\Programme\GTK\lib\tiff.lib
G:\Programme\GTK\lib\xml2.lib
G:\Programme\GTK\lib\xml++-2.6.lib
G:\Programme\GTK\lib\xml++-2.6d.libSoo, dann die Directories:
Linker:
G:\Programme\CodeBlocks\lib
G:\Programme\GTK\libCompiler:
G:\Programme\CodeBlocks\include
G:\Programme\GTK\include\gtkmm-2.4
G:\Programme\GTK
G:\Programme\GTK\include\glibmm-2.4
G:\Programme\GTK\include\gdkmm-2.4
G:\Programme\GTK\include\glib-2.0
G:\Programme\GTK\lib\gdkmm-2.4\include
G:\Programme\GTK\lib\glib-2.0\include
G:\Programme\GTK\lib\glibmm-2.4\include
G:\Programme\GTK\lib\gtk-2.0\include
G:\Programme\GTK\lib\gtkglext-1.0\include
G:\Programme\GTK\lib\gtkmm-2.4\include
G:\Programme\GTK\lib\libglademm-2.4\include
G:\Programme\GTK\lib\libxml++-2.6\include
G:\Programme\GTK\lib\sigc++-2.0\include
G:\Programme\GTK\include\sigc++-2.0
G:\Programme\GTK\include\gtk-2.0
G:\Programme\GTK\include\cairo
G:\Programme\GTK\include\pango-1.0
G:\Programme\GTK\include\pangomm-1.4
G:\Programme\GTK\include\atkmm-1.6
G:\Programme\GTK\include\atk-1.0Und noch die einzelnen Programme (aus G:\Programme\CodeBlocks\bin):
C compiler: gcc.exe
C++ compiler: g++.exe
Linker for dynamic libs: g++.exe
Linker for static libs: ar.exe
Debugger: gdb.exe
Resource compiler: windres.exe
Make program: make.exe
-
Also normalerweise benutzt man auch die Ausgaben von pkg-config was aber in der Version scheinbar Defekt ist und nicht wirklich funktioniert.
Du verwendest für MinGW übrigens auch die falschen Libs da man für MinGW die .a varianten wählt. und man gibt auch nicht jedes mal den ganzen Pfad an sondern einmal den Pfad: -LG:\Programme\GTK\lib\ und dann -lgtkmm-2.4 -lart_lgpl_2 etc
Übringens sind die Libs mit dem d hinten debug libs und die Ohne release libs, beide einzubinden kann auch nur zu Problemen führen.
BR
Vinzenz
-
Hi ...
Vielleicht hilft es dir ja, ich habe mein Code::Blocks Gtkmm - Usertemplate auf deine Gtk-Pfadangaben umgeändert:http://www.livetip.de/downloads/Gtkmm_Project.rar
Einfach den Ordner dadrin in "C:\Dokumente und Einstellungen\<Benutzer>\.CodeBlocks\" rein tun.
Dann kannste das in CB unter New Project > User Templates wählen...
Hoffe es hilft
-
Danke für das User Template. Damit konnte sogar ich jetzt ein Programm erstellen
Auch vielen Dank an dich, evilissimo
-
Freak_Coder schrieb:
Hi ...
Vielleicht hilft es dir ja, ich habe mein Code::Blocks Gtkmm - Usertemplate auf deine Gtk-Pfadangaben umgeändert:http://www.livetip.de/downloads/Gtkmm_Project.rar
Einfach den Ordner dadrin in "C:\Dokumente und Einstellungen\<Benutzer>\.CodeBlocks\" rein tun.
Dann kannste das in CB unter New Project > User Templates wählen...
Hoffe es hilft
Hmm welche GTKmm Version benutzt du eigentlich?
Ich frage nur weil das mit dem "-Wl,--enable-runtime-pseudo-reloc" angeblich in der aktuellen 2.8er Version für Windows nicht mehr gebraucht wird. (also bei MinGW)Würde mich mal interessieren ob man TreeViews etc verwenden kann ohne diese Linkeroption.
BR
Vinzenz
-
evilissimo schrieb:
Würde mich mal interessieren ob man TreeViews etc verwenden kann ohne diese Linkeroption.
Ja kann man, bei der 2.6er hats nicht geklappt.
Seit ich 2.8 habe, habe ich es auch nicht mehr rausgenommen, weil ich nicht wusste das es in der 2.8er auch ohne klappt ... (Jetzt weiß ich es ja
)
Vor einigen Montaten aber, hatte ich das Problem wieder, aber bin mir nicht sicher ob das schon die 2.8er war.
Ich lasse es einfach weiterhin bei meinem Projekten drin
Oder hat es vielleicht irgendeinen Nachteil.
-
Also der Nachteil war bei der 2.6er Version afaik nur das mit dem auto-import blah Fehler und es musste deswegen auch rein.
Naja ob es irgendwelche Nach- oder Vorteile hat kann ich dir nicht sagen
BR
Vinzenz
-
hi,
ich hab das selbe problem, und auch wenn das topic jetzt schon jahre alt ist, würde nochmal jemand das template uppen?