Re: error: redefinition of typedef 'GtkTargetList_ornull




On May 23, 2008, at 11:01 AM, J. Hart wrote:

Has anyone run across the following when building Glib-1.182 for Perl ?
(released Mar 30,retrieved from CPAN)

compiler: gcc 4.2.1
glibc   : 2.6.1
kernel  : 2.6.22.6
distro  : none (from source)
package : Glib-1.182

What version of gtk+?

pkg-config --modversion gtk+-2.0



In file included from Gdk.xs:21:
./gtk2perl.h:183: error: redefinition of typedef 'GtkTargetList_ornull' ./build/gtk2perl-autogen.h:2575: error: previous declaration of 'GtkTargetList_ornull' was here ./gtk2perl.h:185: error: expected declaration specifiers or '...' before '(' token ./gtk2perl.h:185: error: expected declaration specifiers or '...' before '(' token ./gtk2perl.h:185: error: expected declaration specifiers or '...' before '(' token
In file included from Gdk.xs:21:
./gtk2perl.h:186:1: warning: "newSVGtkTargetList_ornull" redefined


Since gtk+ 2.10.0, gtk+ has its own boxed type for GtkTargetList, which was not there previously. gtk2perl.h tries to be compatible with both old and new gtk+. The autogen version, wrapped in #ifdef GTK_TYPE_TARGET_LIST, should only be enabled if your gtk+ defines that GType.

I can verify locally that 2.4.14 and 2.12.4 compile cleanly with Gtk2 1.8.2.


The test in the header is for 2.10.0, but the feature was actually added somewhere in the 2.9.x series, so if you have a 2.9.x gtk+, you're liable to be broken. HOWEVER, we only guarantee compatibility with *stable* releases of gtk+, and 2.9.x was not stable.


--
The stereo, playing the Beastie Boys' "Rhymin' and Stealin'": "I'll steal your girlie like I stole your bike!"

Elysse:  "You mean, take off the chain and ride away?"





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