Thank you Tristan.
I actually tried the --export-dynamic flag before posting, but could not get it to work. I feel that it is most likely a problem in my makefile.am (I am using automake and libtool to generate the makefiles). Here is the make file for the compilation of the dynamic library: libmyplugin= / libmyplugin_LTLIBRARIES=libmyplugin.la libmyplugin_la_SOURCES=libmyplugin.c libmyplugincallbacks.c include_HEADERS = libmyplugincallbacks.h libmyplugin_la_LDFLAGS= -lc -lgcc -avoid-version @PACKAGE_LDFLAGS@ libmyplugin_la_LIBDADD = --export-dynamic @PACKAGE_LIBS@ INCLUDES = @PACKAGE_CFLAGS@ Here is my configure.ac AC_PREREQ(2.59) AC_INIT(myapp, 1.0) PKG_CHECK_MODULES(GTK, gtk+-2.0 gmodule-2.0 gmodule-export-2.0) PACKAGE_CFLAGS="-g -Wall $GTK_CFLAGS" PACKAGE_LIBS="-g $GTK_LIBS -ltar" PACKAGE_LDFLAGS="-Wl, --export-dynamic $GTK_LDFLAGS" AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) AC_SUBST(PACKAGE_LDFLAGS) AM_PROG_LIBTOOL AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE() AC_PROG_CC AC_CONFIG_FILES(Makefile src/Makefile src/modules/Makefile src/modules/libmyplugin/Makefile) AC_OUTPUT For some reason though, callbacks in "myapp" the main app that loads in the .so files work fine. Any ideas appreciated. :) > Date: Thu, 22 Apr 2010 21:37:48 -0400 > Subject: Re: Callbacks when glade file is loaded using a dynamic library > From: t...@gnome.org > To: abx...@msn.com > CC: gtk-app-devel-list@gnome.org > > On Thu, Apr 22, 2010 at 7:21 PM, dfg dfg <abx...@msn.com> wrote: > > > > Hi everyone, > > > > Currently, I have built my main application using glade. This file is then > > loaded by a C application. > > > > I then created another interface using Glade. When my main application > > loads, it loads a .so library which contains code for this subsection (kind > > of like a plugin). > > > > The .so file loads in the second glade file and attaches it into the > > interface of the main application. This all works problem. > > > > The problem I am facing now is that gtk_builder_connect_signals (builder, > > NULL); does not work. > > > > For my .so file, i have 3 files: > > > > -libmyplugin.c > > -libmyplugincallbacks.h > > -libmyplugincallbacks.c > > > > > > My code for the libmyplugin.c file looks like this: > > > > #include <stdlib.h> > > #include <gtk/gtk.h> > > #include "libmyplugincallbacks.h" > > > > #define GUI "libmyplugingui.ui" > > int startplugin(){ > > extern *mainBuilder; > > GtkBuilder *subbuilder; > > > > //Do things like attach the glade file into the main glade file. > > gtk_builder_connect_signals (builder, NULL); > > > > } > > > > > > > > My libmyplugincallbacks.h > > > > #include <gtk/gtk.h> > > > > void myfunc (GtkCellRenderer *cell, GtkCellEditable *editable, const > > gchar *path, gpointer data); > > > > > > > > My libplugincallbacks.c > > > > #ifdef HAVE_CONFIG_H > > # include <config.h> > > #endif > > > > #include "libmyplugincallbacks.h" > > #include <string.h> > > > > void myfunc(GtkCellRenderer *cell, GtkCellEditable *editable, const gchar > > *path, gpointer data){ > > if (GTK_IS_ENTRY (editable)) > > { > > //Do stuff > > } > > } > > > > > > > > When I compile my program, the .so file compiles properly. However, when > > ever I run the program, it loads the .so file. Once GTK builder gets to the > > stage where it connects the signals, it will complain that "myfunc" cannot > > be found. I have double checked the name of the function in my glade file > > and it is spelt and entered correctly. > > You generally need to export your symbols by linking the app with > --export-dynamic flag: > > pkg-config --libs gmodule-2.0 > > Should do the right thing to make your symbols visible. > > Cheers, > -Tristan _________________________________________________________________ Hotmail & Messenger are available on your phone. Try now. http://go.microsoft.com/?linkid=9724461 _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list