gtkmm linker error mit mingw32 unter linux
-
Moin moin,
mein gtkmm Projekt lässt sich mit g++ wunderbar kompilieren. Bei dem w32-Release bekomme ich aber einen Linker error:
$ i586-mingw32msvc-g++ -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-x11-2.0 -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -ogwnc.exe ./src/gwncore/costandproduction.o ./src/glade.o ./src/gwnc.o ./src/gwnc_glade.o [b]/usr/lib/gcc/i586-mingw32msvc/3.4.5/../../../../i586-mingw32msvc/bin/ld: cannot find -lgtkmm-2.4 collect2: ld returned 1 exit status[/b]
Die Libs sind alle da. Jemand ne Idee?
Gruß,
Christoph
-
Hi,
Also die Fehlermeldung ist doch eindeutig: Er findet die Bibliothek nicht.
Was auch kein Wunder ist da du die Pfadangabe, wo sich die Bibliotheken befinden nicht mit gegeben hast.BR
Vinzenz
-
Hi,
die libs befinden sich alle unter /usr/lib - von mingw32 erwarte ich die transfer-leistung dort zu suchen.
g++ findet ja alles was er brauch warum also mingw32 nicht?
gruß
-
Du kannst viel erwarten wenn der Tag lang ist
Na mal im ernst ist denn das so schwierig ein -L/usr/lib hinzuzufügen?
Warscheinlich hat er einfach ein anderes Standardverzeichnis.
BR
-
Man kann ein Windows-Programm nicht gegen das Linux-GTK linken.
Unter /usr/lib befinden sich nur Libs, die für Linux benötigt werden, hier hat mingw32 nichts zu suchen, da es die Libs für Windows benötigt. Diese befinden sich meistens unter /usr/i586-mingw32msvc/lib oder so ähnlich.
Du müsstest GTK für Windows unter Linux in das Standardverzeichnis von mingw32 installieren.
-
Sorry das war ein Copy&Paste Fehler von mir. Ich hab natürlich die Windows lib's und dev-files.
pkg-config liefert die richtigen dependecies der windows-libs - ich habe nur das falsche hier gepostet.
Wie evilissimo sagte habe ich einen Lib-Path hinzugefügt. Danach hat mingw32 die libs auch gefunden aber ich bekomme eine menge undefined references...
http://www.ecn.wfu.edu/~cottrell/cross-gtk/
Note on import libraries: You're likely to run across more than one variety of import library. There are *.a libs, which work nicely with a cross gcc. Tor's packages include these. But some packages don't include *.a libraries, only Microsoft-style *.lib files. These can be used OK with the utility mingw32-dllwrap, but not (so far as I can tell) directly with cross gcc. On the other hand, you may find that if the .lib files don't work (linker errors) you can substitute the corresponding dlls and get linking to work.
Und in der Tat habe ich eine Menge .lib files. Ich vermute das die undefined references daher rühren. Ein A-Lib ersatz konnte ich bisher nicht finden.
Any hints?
gruß,
Christoph