Re: libglade-WARNING **: could not find signal handler



Dear Wallace,

Thanks for the tip, this patch to my Makefile fixed it:

--- Makefile.orig       2005-11-10 16:21:02.000000000 -0500
+++ Makefile    2005-11-10 16:19:52.000000000 -0500
@@ -2,12 +2,13 @@
 OBJS = ${SOURCES:.c=.o}
 CFLAGS = `pkg-config libglade-2.0 gtk+-2.0 --cflags`
 LDADD = `pkg-config libglade-2.0 gtk+-2.0 --libs`
+LINKARGS = -Wl,-export-dynamic
 CC = gcc
 OPTIONS = -g -Wall
 PACKAGE = h2h

 all: ${OBJS}
-       ${CC} ${OPTIONS} -o ${PACKAGE} ${OBJS} ${LDADD}
+       ${CC} ${OPTIONS} -o ${PACKAGE} ${OBJS} ${LDADD} ${LINKARGS}

 .c.o:
        ${CC} ${OPTIONS} ${CFLAGS} -c $<

Shouldn't this be made clear in some of the GTK+/Glade documentation?  I
have the official GNOME developers guide, and had all the major web
documentation open, and nothing seems to mention this necessity.

I know to some of you longtime C hackers, this may seem like a "basic"
fact about gcc and shared libraries, but for someone who hasn't done
years of C coding in the UNIX environment, it sure doesn't come as
obvious.

Thanks a bunch,
-Andrew

On Thu, 2005-11-10 at 11:52 -0800, Wallace Owen wrote:
If it's just one handler that isn't being found but others are, and the
others are in a separately linked lib, make sure when you link you use
-Wl,-export-dynamic to export the symbols in your app so libglade can
find it.


  // Wally

On Thu, 2005-11-10 at 14:15 -0500, Andrew J. Montalenti wrote:
I am just coding my first GTK+ and Glade app in C, and running into
trouble at an early stage.

Basically, I have designed an interface in Glade, and the interface
loads up find with glade_xml_new.  However, glade_xml_signal_autoconnect
reports a warning in that it isn't able to find a signal handler for one
of my GtkMenuItems, despite the fact that I have defined the handler to
the API specification.

I asked about this in #gtk+, and a person who claimed to have "much
libglade experience" said he was "stumped by this one."

nm reports on the executable that on_open_avi_activate is seen as a
symbol, and it is so clearly defined that I really don't know what's
wrong.

I've linked to my code as a gzip'ed tarball, and you should be able to
build it on any Linux system.  When you run 'h2h', you will see a bunch
of warnings for libglade, but the one that doesn't make any sense is the
one for on_open_avi_activate.  You can see the definition for this
handler in window.c.

http://www.pixelmonkey.org/pub/h2h.tar.gz

Thanks for any help solving this mysterious problem,
-Andrew

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]