Countless "undefined reference" while building gtk 2.24
by coltson from LinuxQuestions.org on (#5FX2A)
Hello. I was building gtk 2.24.1, the minimum I need to run a program.
However, at some point, the compilation stopped and showed a lot of error messages like these:
Code:/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_new_uint32'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_warn_message'
/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/libgdk_pixbuf-2.0.so: undefined reference to `g_slice_copy'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_ptr_array_unref'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_get_fixed_array'
/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/libgdk_pixbuf-2.0.so: undefined reference to `g_dngettext'
/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0//lib/libpango-1.0.so: undefined reference to `g_malloc_n'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_type_new'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_iter_next_value'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_get_user_special_dir'
/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0//lib/libpango-1.0.so: undefined reference to `g_once_init_leave'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_type_get_gtype'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_is_signature'
/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/libgdk_pixbuf-2.0.so: undefined reference to `g_dgettext'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_get_bytestring'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_type_is_tuple'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_prefix_error'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_markup_collect_attributes'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_builder_unref'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_new'I have no idea why, because I am using equal or newer versions of the required libraries. Quoting the INSTALL file:
Quote:
I undefined reference errors refer to glib, gdk and pango libraries. The versions I am using of these programs are: 2.28.8, 2.22.1 and 1.20. All of them are present, otherwise I wouldn't be ble to get through the configure stage, which I did with the following command:
Code:LD_LIBRARY_PATH=/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/
CPPFLAGS="-I/media/34GB/Arquivos-de-Programas-Linux/xorg/X11-1.4.4/include/ -I/media/34GB/Arquivos-de-Programas-Linux/xorg/Xorgproto-2018.1/include/ -I/media/34GB/Arquivos-de-Programas-Linux/xorg/Xextproto-7.0.2/include/"
LDFLAGS="-L/media/34GB/Arquivos-de-Programas-Linux/xorg/X11-1.4.4/lib/ -L/media/34GB/Arquivos-de-Programas-Linux/xorg/Xext-1.0.0/lib/ -L/media/34GB/Arquivos-de-Programas-Linux/xorg/Xrender-0.9.0.2/lib/"
./configure --prefix=/media/34GB/Arquivos-de-Programas-Linux/Gtk+-2.24.1
PKG_CONFIG_PATH=/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Atk-1.29.3/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Cairo-1.10.0/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Pixman-0.18.4/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/Fontconfig-2.4.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Freetype-2.2.1/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/GL/:/media/34GB/Arquivos-de-Programas-Linux/Png-1.2.14/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xcb-1.13/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/xorg/Pthread-stubs-0.1/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xau-1.0.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xorgproto-2018.1/share/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/xorg/X11-1.4.4/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xrender-0.9.0.2/lib/pkgconfig/I used a similar configure setting to build gtk 2.10 and it worked fine. Yet here it breaks down ugly.
Here some data that I got from running objdump on: libgio-2.0.so, libpango-1.0.so and libgdk_pixbuf-2.0.so:
Code:objdump -t libpango-1.0.so | grep g_malloc_n
0000000000000000 F *UND* 0000000000000000 g_malloc_n
objdump -t libgio-2.0.so | grep g_variant_get_fixed_array
0000000000000000 F *UND* 0000000000000000 g_malloc_n
objdump -t libgdk_pixbuf-2.0.so | grep g_dngettext
0000000000000000 F *UND* 0000000000000000 g_dngettextI don't have enough knowledge to take conclusions, but these "F *UND* and lots of 000000000 seems awkward for me.
Does that means something went wrong when building these libraries? I f so, what can I do to figure out the reason and fix it?
If not, well, these questions still applies.


However, at some point, the compilation stopped and showed a lot of error messages like these:
Code:/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_new_uint32'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_warn_message'
/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/libgdk_pixbuf-2.0.so: undefined reference to `g_slice_copy'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_ptr_array_unref'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_get_fixed_array'
/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/libgdk_pixbuf-2.0.so: undefined reference to `g_dngettext'
/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0//lib/libpango-1.0.so: undefined reference to `g_malloc_n'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_type_new'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_iter_next_value'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_get_user_special_dir'
/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0//lib/libpango-1.0.so: undefined reference to `g_once_init_leave'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_type_get_gtype'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_is_signature'
/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/libgdk_pixbuf-2.0.so: undefined reference to `g_dgettext'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_get_bytestring'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_type_is_tuple'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_prefix_error'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_markup_collect_attributes'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_builder_unref'
/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/libgio-2.0.so: undefined reference to `g_variant_new'I have no idea why, because I am using equal or newer versions of the required libraries. Quoting the INSTALL file:
Quote:
GTK+ requires the following packages: - The GLib, Pango, GdkPixbuf, ATK and cairo libraries, available at the same location as GTK+. GTK+ 2.24.1 requires at least GLib 2.25.10, Pango 1.20, GdkPixbuf 2.21.0, ATK 1.29.2 and cairo 1.6.0. - gobject-introspection 0.9.3 or newer. |
Code:LD_LIBRARY_PATH=/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/
CPPFLAGS="-I/media/34GB/Arquivos-de-Programas-Linux/xorg/X11-1.4.4/include/ -I/media/34GB/Arquivos-de-Programas-Linux/xorg/Xorgproto-2018.1/include/ -I/media/34GB/Arquivos-de-Programas-Linux/xorg/Xextproto-7.0.2/include/"
LDFLAGS="-L/media/34GB/Arquivos-de-Programas-Linux/xorg/X11-1.4.4/lib/ -L/media/34GB/Arquivos-de-Programas-Linux/xorg/Xext-1.0.0/lib/ -L/media/34GB/Arquivos-de-Programas-Linux/xorg/Xrender-0.9.0.2/lib/"
./configure --prefix=/media/34GB/Arquivos-de-Programas-Linux/Gtk+-2.24.1
PKG_CONFIG_PATH=/media/34GB/Arquivos-de-Programas-Linux/Glib-2.28.8/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Atk-1.29.3/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Cairo-1.10.0/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/Gdk-pixbuf-2.22.1/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Pixman-0.18.4/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/Fontconfig-2.4.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Freetype-2.2.1/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/GL/:/media/34GB/Arquivos-de-Programas-Linux/Png-1.2.14/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xcb-1.13/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/xorg/Pthread-stubs-0.1/lib/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xau-1.0.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xorgproto-2018.1/share/pkgconfig/
:/media/34GB/Arquivos-de-Programas-Linux/xorg/X11-1.4.4/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/xorg/Xrender-0.9.0.2/lib/pkgconfig/I used a similar configure setting to build gtk 2.10 and it worked fine. Yet here it breaks down ugly.
Here some data that I got from running objdump on: libgio-2.0.so, libpango-1.0.so and libgdk_pixbuf-2.0.so:
Code:objdump -t libpango-1.0.so | grep g_malloc_n
0000000000000000 F *UND* 0000000000000000 g_malloc_n
objdump -t libgio-2.0.so | grep g_variant_get_fixed_array
0000000000000000 F *UND* 0000000000000000 g_malloc_n
objdump -t libgdk_pixbuf-2.0.so | grep g_dngettext
0000000000000000 F *UND* 0000000000000000 g_dngettextI don't have enough knowledge to take conclusions, but these "F *UND* and lots of 000000000 seems awkward for me.
Does that means something went wrong when building these libraries? I f so, what can I do to figure out the reason and fix it?
If not, well, these questions still applies.