[geos-devel] GEOS 2.1.1 sprintf Compile Error
strk at refractions.net
strk at refractions.net
Sun Jan 30 05:13:41 EST 2005
On Fri, Jan 28, 2005 at 01:47:29PM -0500, Frank Warmerdam wrote:
> On Fri, 28 Jan 2005 10:56:35 +0100, strk at refractions.net
> <strk at refractions.net> wrote:
> > I've substituted most sprintf calls with use of ostringstream.
> > WKTWriter and (external) MarkupSTL are the only one left.
> >
> > Could you check if CVS version works fine for you ?
> > TIA
>
> Strk,
>
> OK, I don't get the sprintf() problems anymore, though I do
> falldown with this message:
>
>
> /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
> -I../../source/headers -I../../source/headers/geos
> -I../../source/headers -DGEOS_VERSION=""2.1.1"" -g -O2 -c -o
> Polygonizer.lo `test -f '../operation/polygonize/Polygonizer.cpp' ||
> echo './'`../operation/polygonize/Polygonizer.cpp
> g++ -DHAVE_CONFIG_H -I. -I. -I../../source/headers
> -I../../source/headers/geos -I../../source/headers
> -DGEOS_VERSION=2.1.1 -g -O2 -c ../operation/polygonize/Polygonizer.cpp
> -Wp,-MD,.deps/Polygonizer.TPlo -fPIC -DPIC -o .libs/Polygonizer.o
> ../operation/polygonize/Polygonizer.cpp: In method `void
> geos::Polygonizer::LineStringAdder::filter_rw(geos::Geometry *)':
> ../../source/headers/geos/opPolygonize.h:408: `void
> geos::Polygonizer::add(geos::LineString *)' is private
> ../operation/polygonize/Polygonizer.cpp:29: within this context
> make[2]: *** [Polygonizer.lo] Error 1
> make[2]: Leaving directory `/usr3/pkg4/OpenEV_FW_Tree/geos-050128/source/geom'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/usr3/pkg4/OpenEV_FW_Tree/geos-050128/source'
> make: *** [all-recursive] Error 1
>
> This turns out to be a class defined within the namespace of
> the Polygonizer class not having access to the Polygonizer
> private data. Since it works with modern GCCs and not with
> the ancient gcc, I would conclude that the problem is really
> a bug in the old GCC, so I don't think it makes sense to
> bastardize geos to be compatible.
>
> Of course, in the dark conservative recesses of my own twisted
> mind, the voice that says "don't use advanced C++ features ...
> they will give you a headache eventually" says "ha! I told you
> so.".
In source/headers/geos/opPolygonize.h, line 490 you find:
// This seems to be needed by GCC 2.95.4
//friend class Polygonizer::LineStringAdder;
Could you see if commenting out that line fixes the problem ?
(it's the Polygonzer class).
--strk;
>
> For now I'll level GEOS out of my FWTools builds, but eventually
> I'll just have to upgrade to a modern GCC.
>
> Best regards,
> --
> ---------------------------------------+--------------------------------------
> I set the clouds in motion - turn up | Frank Warmerdam, warmerdam at pobox.com
> light and sound - activate the windows | http://pobox.com/~warmerdam
> and watch the world go round - Rush | Geospatial Programmer for Rent
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel
More information about the geos-devel
mailing list