[Mono-dev] Building libgdiplus on Ubuntu 13.04

Weeble clockworksaint at gmail.com
Fri Jun 28 16:05:07 UTC 2013

I get errors when trying to build libgdiplus either from github or
from what appears to be the last published tarball:


In both cases, I get this error:

Making all in tests
make[2]: Entering directory
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -I../src
-I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include
-I/usr/include/cairo -I/usr/include/glib-2.0
-I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1
-I/usr/include/freetype2 -I/usr/include/libpng12
-I/usr/include/freetype2        -g -O2 -pthread -MT testgdi.o -MD -MP
-MF .deps/testgdi.Tpo -c -o testgdi.o testgdi.c
mv -f .deps/testgdi.Tpo .deps/testgdi.Po
/bin/bash ../libtool --tag=CC   --mode=link gcc  -g -O2 -pthread   -o
testgdi testgdi.o ../src/libgdiplus.la -lpthread -lfontconfig
libtool: link: gcc -g -O2 -pthread -o .libs/testgdi testgdi.o
../src/.libs/libgdiplus.so -lpthread -lfontconfig -pthread
/usr/bin/ld: testgdi.o: undefined reference to symbol 'g_print'
/usr/bin/ld: note: 'g_print' is defined in DSO
/lib/i386-linux-gnu/libglib-2.0.so.0 so try adding it to the linker
command line
/lib/i386-linux-gnu/libglib-2.0.so.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [testgdi] Error 1
make[2]: Leaving directory

I'm afraid I don't really understand autotools, so I'm not sure why
it's not linking libglib-2.0 here. I found that it works if I change
tests/Makefile.am so that LDADDS is defined like so:

LDADDS =					\
	$(top_builddir)/src/libgdiplus.la	\

As I say, I don't really understand autotools, so I don't know if this
is a good idea or not. I'm afraid this might just be addressing the
symptom and not the cause. Clearly it manages to link in fontconfig
without needing it to be explicitly mentioned here.

Is this problem specific to my setup? Or does it happen for everyone?
Could it be fixed in libgdiplus?



More information about the Mono-devel-list mailing list