[cairo] Tripping on first step - cannot compile "hello world" with Cairo on Mingwenv

mathog mathog at caltech.edu
Thu Mar 8 11:22:49 PST 2012

On 08-Mar-2012 10:49, Chris Wilson wrote:

> During linking, the order is important: symbols are resolved to the
> right. That is test.c will look up its symbols in libcairo.dll.a then
> libgdk-win32-2.0.dll.a and libcairo.dll.a will lookup its symbols in
> libgdk-win32-2.0.dll.a etc.

I thought that was just for static libraries, dynamic shouldn't matter. 
In any case, rewrote it as:

mingw32-gcc -c -o test.obj -mms-bitfields 
-Ic:/progs/devlibs2/include/atk-1.0 -Ic:/progs/devlibs2/include/cairo 
-Ic:/progs/devlibs2/include/pixman-1 -Ic:/progs/devlibs2/include 
-Ic:/progs/devlibs2/include/libpng12 test.c

mingw32-gcc -o test test.obj -mms-bitfields -Lc:/progs/devlibs2/lib  
-Lc:/progs/mingw/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 
-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 
-lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl

but it still emits:

c:/progs/mingw/lib/libmingw32.a(main.o):main.c:(.text+0xd2): undefined 
reference to `WinMain at 16'
collect2: ld returned 1 exit status

It does that even if the entire set of -l options is repeated again.  
Maybe the the cairo example needs something
else to build on Windows, like some ifdef to cause it to include a 


David Mathog
mathog at caltech.edu
Manager, Sequence Analysis Facility, Biology Division, Caltech

More information about the cairo mailing list