Re: [Vala] glade, symbol not found.



Thanks, Trevor.

Sam

-----Original Message-----
From: Travis Watkins <amaranth ubuntu com>
Sent: 16 June 2008 17:07
To: Sam Liddicott <sam liddicott com>
Cc: vala-list gnome org
Subject: Re: [Vala] glade, symbol not found.

On Mon, Jun 16, 2008 at 10:11 AM, Sam Liddicott <sam liddicott com> wrote:
I've imported the vala glade example from the wiki into a project build
using vala-gen-project.
I in configure.ac I had to add:
GLADE_REQUIRED=2.6.0
and
libglade-2.0 >= $GLADE_REQUIRED

to
PKG_CHECK_MODULES(PHONEUI, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >=
$GLIB_REQUIRED gtk+-2.0 >= $GTK_REQUIRED)


It builds fine now, but when I run the application, the connect_signals
fails:

sam lazarus:~/projects/vala/phoneui$ ./phoneui
Symbol not found: activate => glade_phone_ui_on_bHelloWorld_clicked

sam lazarus:~/projects/vala/phoneui$ nm -s ./phoneui | grep
glade_phone_ui_on_bHelloWorld_clicked
080491b0 T glade_phone_ui_on_bHelloWorld_clicked

However if I build in one step using a command line based on the glade
example:
$ valac --pkg gtk+-2.0 --pkg libglade-2.0 --pkg gmodule-2.0 -o demo
mainwindow.vala -X "-Wl,--export-dynamic -rdynamic"
then it works fine; also:

sam lazarus:~/projects/vala/phoneui/src$ nm -s ./demo | grep
glade_phone_ui_on_bHelloWorld_clicked
08048ea4 T glade_phone_ui_on_bHelloWorld_clicked

...so the symbol seems just as valid...

I guess the:
"-Wl,--export-dynamic -rdynamic"
has something to do with it, if I add it to the build line, like this:
sam lazarus:~/projects/vala/phoneui$ gcc -g -O2 -Wl,--export-dynamic
-rdynamic -o phoneui src/mainwindow.o  /usr/lib/libglade-2.0.so
/usr/lib/libgtk-x11-2.0.so /usr/lib/libxml2.so /usr/lib/libgdk-x11-2.0.so
/usr/lib/libatk-1.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm
/usr/lib/libpangocairo-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libcairo.so
/usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl
/usr/lib/libglib-2.0.so

then it works, so it should probably mean a changed needed in
vala-gen-project to put this as C flags configure.ac or Makefile.am or
something (I guess).
I've not managed to work out where.

Sam


You need to add the following to your Makefile.am:

phoneui_LDFLAGS = \
        -Wl,-export-dynamic \
        $(NULL)

I'm guessing phoneui is the right prefix anyway.

-- 
Travis Watkins
http://www.realistanew.com




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