I am trying to install Goo::Canvas using the guide that was figured out awhile ago (quoted below). When running dmake I get these errors. Don't know where to go from there.
C:\Goo-Canvas-0.05-EwQ_x8>dmake
Skip blib\arch/Goo\Canvas/Install/goocanvas-perl-autogen.h (unchanged)
Skip blib\arch/Goo\Canvas/Install/goocanvas-perl-version.h (unchanged)
Skip blib\arch/Goo\Canvas/Install/Files.pm (unchanged)
Skip blib\arch/Goo\Canvas/Install/goocanvas-perl.typemap (unchanged)
Skip blib\arch/Goo\Canvas/Install/goocanvas.typemap (unchanged)
Skip blib\arch/Goo\Canvas/Install/goocanvas-perl.h (unchanged)
Skip blib\lib\Goo/Canvas.pm (unchanged)
[ XS xs\goocanvas.xs ]
[ CC xs\goocanvas.c ]
xs\goocanvas.c: In function `XS_Goo__Canvas_cairo_surface_from_pixbuf':
xs\goocanvas.c:821: warning: assignment makes pointer from integer without a cas
t
xs\goocanvas.xs: In function `XS_Goo__Cairo__Pattern_new_from_pixbuf':
xs\goocanvas.xs:340: warning: assignment makes pointer from integer without a ca
st
[ XS xs\goocanvasbounds.xs ]
[ CC xs\goocanvasbounds.c ]
[ XS xs\goocanvasellipse.xs ]
[ CC xs\goocanvasellipse.c ]
[ XS xs\goocanvasgroup.xs ]
[ CC xs\goocanvasgroup.c ]
[ XS xs\goocanvasimage.xs ]
[ CC xs\goocanvasimage.c ]
[ XS xs\goocanvasitem.xs ]
[ CC xs\goocanvasitem.c ]
[ XS xs\goocanvasitemmodel.xs ]
[ CC xs\goocanvasitemmodel.c ]
[ XS xs\goocanvasitemsimple.xs ]
[ CC xs\goocanvasitemsimple.c ]
[ XS xs\goocanvaspath.xs ]
[ CC xs\goocanvaspath.c ]
[ XS xs\goocanvaspolyline.xs ]
[ CC xs\goocanvaspolyline.c ]
[ XS xs\goocanvasrect.xs ]
[ CC xs\goocanvasrect.c ]
[ XS xs\goocanvasstyle.xs ]
[ CC xs\goocanvasstyle.c ]
[ XS xs\goocanvastable.xs ]
[ CC xs\goocanvastable.c ]
[ XS xs\goocanvastext.xs ]
[ CC xs\goocanvastext.c ]
[ XS xs\goocanvaswidget.xs ]
[ CC xs\goocanvaswidget.c ]
Running Mkbootstrap for Goo::Canvas ()
C:\camelbox\bin\perl.exe -MExtUtils::Command -e chmod 644 Canvas.bs
dlltool --def Canvas.def --output-exp dll.exp
[ LD blib\arch\auto\Goo\Canvas\Canvas.dll ]
d000000.o:(.idata$2+0x0): multiple definition of `_head_libgoocanvas_3_dll'
C:\camelbox\lib\libgoocanvas.dll.a(d000000.o):(.idata$2+0x0): first defined here

d000001.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_antiali
as_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000199.o):(.idata$5+0x0): first defined here

d000001.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_antialia
s_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000199.o):(.idata$6+0x0): first defined here

d000002.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_fill_pa
ttern_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000201.o):(.idata$5+0x0): first defined here

d000002.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_fill_pat
tern_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000201.o):(.idata$6+0x0): first defined here

d000003.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_fill_ru
le_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000202.o):(.idata$5+0x0): first defined here

d000003.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_fill_rul
e_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000202.o):(.idata$6+0x0): first defined here

d000004.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_font_de
sc_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000203.o):(.idata$5+0x0): first defined here

d000004.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_font_des
c_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000203.o):(.idata$6+0x0): first defined here

d000005.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_line_ca
p_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000208.o):(.idata$5+0x0): first defined here

d000005.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_line_cap
_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000208.o):(.idata$6+0x0): first defined here

d000006.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_line_da
sh_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000209.o):(.idata$5+0x0): first defined here

d000006.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_line_das
h_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000209.o):(.idata$6+0x0): first defined here

d000007.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_line_jo
in_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000210.o):(.idata$5+0x0): first defined here

d000007.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_line_joi
n_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000210.o):(.idata$6+0x0): first defined here

d000008.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_line_jo
in_miter_limit_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000211.o):(.idata$5+0x0): first defined here

d000008.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_line_joi
n_miter_limit_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000211.o):(.idata$6+0x0): first defined here

d000009.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_line_wi
dth_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000212.o):(.idata$5+0x0): first defined here

d000009.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_line_wid
th_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000212.o):(.idata$6+0x0): first defined here

d000010.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_operato
r_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000214.o):(.idata$5+0x0): first defined here

d000010.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_operator
_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000214.o):(.idata$6+0x0): first defined here

d000011.o:(.idata$5+0x0): multiple definition of `_imp__goo_canvas_style_stroke_
pattern_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000219.o):(.idata$5+0x0): first defined here

d000011.o:(.idata$6+0x0): multiple definition of `_nm__goo_canvas_style_stroke_p
attern_id'
C:\camelbox\lib\libgoocanvas.dll.a(d000219.o):(.idata$6+0x0): first defined here

d000012.o:(.idata$7+0x0): multiple definition of `libgoocanvas_3_dll_iname'
C:\camelbox\lib\libgoocanvas.dll.a(d000241.o):(.idata$7+0x0): first defined here

xs/goocanvas.o:goocanvas.c:(.text+0x68): undefined referencInfo: resolving _goo_
canvas_style_stroke_pattern_id by linking to __imp__goo_canvas_style_stroke_patt
ern_id (auto-import)
Info: resolving _goo_canvas_style_fill_pattern_id by linking to __imp__goo_canva
s_style_fill_pattern_id (auto-import)
Info: resolving _goo_canvas_style_fill_rule_id by linking to __imp__goo_canvas_s
tyle_fill_rule_id (auto-import)
Info: resolving _goo_canvas_style_operator_id by linking to __imp__goo_canvas_st
yle_operator_id (auto-import)
Info: resolving _goo_canvas_style_antialias_id by linking to __imp__goo_canvas_s
tyle_antialias_id (auto-import)
Info: resolving _goo_canvas_style_line_width_id by linking to __imp__goo_canvas_
style_line_width_id (auto-import)
Info: resolving _goo_canvas_style_line_cap_id by linking to __imp__goo_canvas_st
yle_line_cap_id (auto-import)
Info: resolving _goo_canvas_style_line_join_id by linking to __imp__goo_canvas_s
tyle_line_join_id (auto-import)
Info: resolving _goo_canvas_style_line_join_miter_limit_id by linking to __imp__
goo_canvas_style_line_join_miter_limit_id (auto-import)
Info: resolving _goo_canvas_style_line_dash_id by linking to __imp__goo_canvas_s
tyle_line_dash_id (auto-import)
Info: resolving _goo_canvas_style_font_desc_id by linking to __imp__goo_canvas_s
tyle_font_desc_id (auto-import)
Creating library file: blib\arch\auto\Goo\Canvas\Canvas.lib.a
e to `gtk2perl_new_gtkobject'
xs/goocanvasitem.o:goocanvasitem.c:(.text+0x90): undefined reference to `gtk2per
l_new_gtkobject'
collect2: ld returned 1 exit status
dmake:  Error code 129, while making 'blib\arch\auto\Goo\Canvas\Canvas.dll'






Heres what I have found, hope it may help people in the future.

Installing goocanvas on windows:
Download pre-built goocanvas from

<https://sourceforge.net/project/showfiles.php?group_id=173653>. Also, goocanvas.pc may be

needed. Install them as follows (assuming main drive is C:):
C:\..\bin\libgoocanvas-3.dll
     \include\goocanvas
     \lib\libgoocanvas.a
     \lib\libgoocanvas.dll.a
     \lib\pkg-config
     \lib\pkgconfig\goocanvas.pc
     \share\gtk-doc\html\goocanvas
     \share\gtk-doc\tmpl
     \share\gtk-doc\xml
 
This should do it for installing the goocanvas library on Windows.


To install the perl bindings Goo::Canvas on Windows:
Download the module from CPaN and Extract into a directory without an spacing since it

complicates things (such as C:\Goo-Canvas-0.05). Run 'perl Makefile.PL' to create the

Makefile. Next the Makefile needs to be edited. These lines need to be edited fore these

files:
EXTRALIBS
    C:\..\bin\libgoocanvas-3.dll
    C:\..\bin\libgtk-win32-2.0-0.
dll
    C:\..\bin\libgdk-win32-2.0-0.dll
    C:\..\bin\libatk-1.0-0.dll
    C:\..\bin\libgdk_pixbuf-2.0-0.dll
    C:\..\bin\libpangowin32-1.0-0.dll
    C:\..\bin\libpangocairo-1.0-0.dll
    C:\..\bin\libcairo-2.dll
    C:\..\bin\libgobject-2.0-0.dll
    C:\..\bin\libgmodule-2.0-0.dll
    C:\..\bin\libglib-2.0-0.dll
    C:\..\bin\intl.dll
    C:\..\bin\libcairo-2.dll
    C:\..\bin\libglib-2.0-0.dll

LDLOADLIBS
    Should be the same as above

Also, the header file has to be added to the Makefile in the INC:
INC
    -IC:\..\include\goocanvas

This should do it. Then run, 'make', 'make test', 'make install'.



Personally, I use the perl build called camelbox and this is what I needed to do to get

things going. I do still have 2 warnings when I run make:
xs\goocanvas.c: In function `XS_Goo__Canvas_cairo_surface_from_pixbuf':
xs\goocanvas.c:821: warning: assignment makes pointer from integer without a cas
t
xs\goocanvas.xs: In function `XS_Goo__Cairo__Pattern_new_from_pixbuf':
xs\goocanvas.xs:340: warning: assignment makes pointer from integer without a ca
st

but luckily they are just warnings. Thanks to spicy jack and the goocanvas mailing list.

--
Jamie Ryan Lahowetz
University of Nebraska - Lincoln
Graduate Student - Geosciences
402.304.0766
jrl9262@huskers.unl.edu