GTKmm mit Code::Blocks
-
Hi,
ich arbeite mit Code::Blocks, Windows XP SP 2, .Net 2 und GTK(mm) 2.8.
Jetzt hab ich mal versucht, ein einfaches Hello World mit GTKmm ans Laufen zu kriegen. Also erstell ich in Code::Blocks ne neue Konsolenanwendung, schreib den Quelltext aus evilissimos Tutorial ab, linke die Bibliotheken und Header dazu und kompilier das Ganze.
Beim Starten bekomm ich zuerst den Fehler R6034, direkt gefolgt von einem
Die Anwendung konnte nicht richtig initialisiert werden (0xc0000142). Klicken Sie auf "OK", um die Anwendung zu beenden.
Jetzt hab ich mir schon einen abgemurkst, um von Hand ein Manifest zu erstellen, hat aber leider nicht geklappt, weil al.exe (der assembly linker) meine exe nicht annehmen wollte.
Was mach ich falsch? Wie kann ich GTKmm benutzen?
MfG,
Michael E.
-
Benutzt du zufällig die VC7.1 Commandline tools?
Weil die neuen binaries (wenn du die von hier http://www.pcpm.ucl.ac.be/~gustin/win32_ports/ heruntergeladen hast) funktionieren eigentlich nur noch mit VC8
Das würde ich dann einfach mal darauf schieben *fg*
BR
Vinzenz
-
Ich habe zwar auch die VC 7.1 Command Line Tools auf meinem Rechner, aber wenn ich nicht völlig durchgedreht bin, hab ich die exe mit dem Compiler von VC 8 kompiliert.
Wie siehts denn mim gcc aus? Welche Versionen werden unterstützt?
-
Michael E. schrieb:
Ich habe zwar auch die VC 7.1 Command Line Tools auf meinem Rechner, aber wenn ich nicht völlig durchgedreht bin, hab ich die exe mit dem Compiler von VC 8 kompiliert.
Wie siehts denn mim gcc aus? Welche Versionen werden unterstützt?
MinGW 3.4.x was anderes gibts (aktuell) grad gar net für Win
-
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?