Re: trauma spliting source into multiple files and applying autotools



On Mon, 20 Jul 2009 22:26:52 -0400
Braden McDaniel <braden endoframe com> wrote:

On Tue, 2009-07-21 at 12:20 +1000, Mick wrote:
On Mon, 20 Jul 2009 12:17:32 -0400
Braden McDaniel <braden endoframe com> wrote:

On Mon, 2009-07-20 at 11:22 +1000, Mick wrote:

[snip]

compiling with:
gcc -Wall -g -o tutor main.c -export-dynamic `pkg-config
--cflags
--libs gtk+-2.0` produces an executable that runs just as
expected.

When I split the .c file into the main function as main.c and
the 'callbacks' into callback.c and create the Makefile.am,
configure.in, etc compilation runs without error and the exec
runs but hangs after displaying: Gtk-CRITICAL **:
gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed

on:
 gtk_widget_show(chat_window);

Thanks for your help and critique, I've taken your advice on board:

You need to add -export-dynamic to AM_LDFLAGS in Makefile.am.
src/Makefile.am
<code>
bin_PROGRAMS = nuchimp

nuchimp_SOURCES = \
    callback.c callback.h \
    main.c main.h 

AM_CPPFLAGS $(GTK_CFLAGS)
AM_LDFLAGS -export-dynamic

You're missing some '=' signs here; e.g.:

        AM_CPPFLAGS = $(GTK_CFLAGS)

That's probably the source of your error.

I removed several paragraphs that defined install/uninstall after
getting this error but it remains.

Looking at Automake's output can be very educational; but unless you
really know what you're doing, you probably shouldn't bother editing
it. If the generated Makefile has errors, it's almost certainly
because there were errors in the input.
should have said removed from Makefile.am.

Now the source compiles but linking produces:
gcc  -Wall -g -O2 -export-dynamic  -o nuchimp callback.o main.o  
callback.o: In function `on_panicbutton_clicked':
/home/mick/Projects/nuchimp/src/callback.c:62: undefined reference to
`gtk_widget_destroy' callback.o: In function `on_quit_activate':
/home/mick/Projects/nuchimp/src/callback.c:40: undefined reference to
`gtk_main_quit' callback.o: In function `on_chat_window_destroy':
/home/mick/Projects/nuchimp/src/callback.c:14: undefined reference to
`gtk_main_quit' callback.o: In function `on_connect_activate':
/home/mick/Projects/nuchimp/src/callback.c:29: undefined reference to
`gtk_widget_show_all' main.o: In function `main':
/home/mick/Projects/nuchimp/src/main.c:15: undefined reference to
`gtk_init' /home/mick/Projects/nuchimp/src/main.c:17: undefined
reference to
`gtk_builder_new' /home/mick/Projects/nuchimp/src/main.c:18: undefined
reference to
`gtk_builder_add_from_file' /home/mick/Projects/nuchimp/src/main.c:20:
undefined reference to
`gtk_widget_get_type' /home/mick/Projects/nuchimp/src/main.c:20:
undefined reference to
`gtk_builder_get_object' /home/mick/Projects/nuchimp/src/main.c:20:
undefined reference to
`g_type_check_instance_cast' /home/mick/Projects/nuchimp/src/main.c:21:
undefined reference to
`gtk_builder_get_object' /home/mick/Projects/nuchimp/src/main.c:21:
undefined reference to
`g_type_check_instance_cast' /home/mick/Projects/nuchimp/src/main.c:22:
undefined reference to
`gtk_builder_connect_signals' /home/mick/Projects/nuchimp/src/main.c:23:
undefined reference to
`g_type_check_instance_cast' /home/mick/Projects/nuchimp/src/main.c:23:
undefined reference to
`g_object_unref' /home/mick/Projects/nuchimp/src/main.c:25: undefined
reference to
`gtk_widget_show' /home/mick/Projects/nuchimp/src/main.c:26: undefined
reference to `gtk_main'
collect2: ld returned 1 exit status

I tried explicitly '#include'ing the headers that defined these
functions with no change. 

Help, my brian is melting







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