Hi folks,
just a short info on how to compile gargoyle under Fedora 13.
Jam produces this error message:
Link build/linux.release/garglk/gargoyle
/usr/bin/ld: build/linux.release/garglk/launchgtk.o: undefined
reference to symbol 'gtk_file_chooser_set_current_folder'
/usr/bin/ld: note: 'gtk_file_chooser_set_current_folder' is defined in
DSO /usr/lib64/libgtk-x11-2.0.so.0 so try adding it to the linker
command line
/usr/lib64/libgtk-x11-2.0.so.0: could not read symbols: Invalid
operation
collect2: ld returned 1 exit status
cc -o build/linux.release/garglk/gargoyle build/linux.release/garglk/
launchgtk.o build/linux.release/garglk/launcher.o build/linux.release/
garglk/libgarglk.so -lz -lm
...failed Link build/linux.release/garglk/gargoyle ...
...failed updating 1 target(s)...
The problem seems to be related to this Fedora feature:
https://fedoraproject.org/wiki/Features/ChangeInImplicitDSOLinking
https://fedoraproject.org/wiki/UnderstandingDSOLinkChange
Adding the libraries for gtk (and the related stuff) to the linker
call seems to fix the problem. Here's the patch:
---------
--- Jamrules.org 2010-09-27 15:05:16.000000000 +0200
+++ Jamrules 2010-11-08 22:25:24.245974982 +0100
@@ -60,7 +60,7 @@
PKGCONFIG = "pkg-config freetype2 gtk+-2.0 gdk-x11-2.0
gobject-2.0 fontconfig" ;
GARGLKCCFLAGS = "`$(PKGCONFIG) --cflags`" -fPIC ;
GARGLKLIBS = "`$(PKGCONFIG) --libs`" -ljpeg -lpng -lz ;
- LINKLIBS = -lz -lm ;
+ LINKLIBS = -lz -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -lgobject-2.0 -
lglib-2.0 ;
if $(USESDL) = yes
{
--------
Could anyone not using a redhat-based distribution try this?
Cheers,
Heiko