[geos-devel] 3.0?

Charlie Savage cfis at savagexi.com
Mon Aug 7 17:44:41 EDT 2006


Yes, there is inline.o and inlines.lo.

Not sure I understand though.  From inlines.cpp:

// Only do something if GEOS_INLINE is defined
// Otherwise we'll end up with duplicated symbols
#ifdef GEOS_INLINE

// Undefine GEOS_INLINE so that .inl files
// will be ready for an implementation file
#undef GEOS_INLINE

#include <geos/inline.h>
#include <geos/io/WKTReader.inl>
#include <geos/io/ByteOrderDataInStream.inl>
#include <geos/operation/overlay/MinimalEdgeRing.inl>
...

#end


If GEOS_INLINE is defined it looks like all the files get included. 
Then if you look at, say WKTReader.inl:

#ifdef GEOS_INLINE
# include <geos/io/WKTReader.inl>
#endif

Looks like this also would always be called when:

CXXFLAGS = -g -O2 -DGEOS_INLINE -Wall -ansi -pedantic -Wno-long-long

Anyway, whatever is supposed to happen does not appear to be on MingW.

Charlie

strk at refractions.net wrote:
> On Fri, Aug 04, 2006 at 05:20:49PM -0600, Charlie Savage wrote:
>> Okay, I've looked at this a bit more and don't see any obvious problems. 
>>    I did a clean checkout and compiled normally (./configure, make). 
>> In the generated make files I see:
>>
>> CXXFLAGS = -g -O2 -DGEOS_INLINE -Wall -ansi -pedantic -Wno-long-long
>>
>> However, it looks like the *.inl files are being included twice.
>>
>> Suggestions?
> 
> When GEOS_INLINE is defined the inlines.cpp file should include no
> files, so the problem seems there. Check build line for inlines.o.
> 
> --strk;
> 
>> Charlie
>>
>>
>> Charlie Savage wrote:
>>>> Anything else missing before releasing 3.0.0rc1 ?
>>> I'd like to see MingW work.
>>>
>>> I fixed up a autoconf issue (the line feed one) and checked in a couple 
>>> changes yesterday so geos would compile.
>>>
>>> However, it doesn't link (errors below).  I'll try to investigate 
>>> further this weekend.  Other than that, I'm happy.
>>>
>>> Charlie
>>>
>>>
>>> ------------------
>>> .libs/libgeos.lax/libalgorithm.a/MCPointInRing.o: In function 
>>> `ZN4geos9algorithm13MCPointInRing10MCSelecterD1Ev':C:/Development/msys/src/geos/trunk/source/algorithm/../../source/headers/geos/algorithm/PointInRing.h:(.text$_ZN4geos4geom11LineSegmentD1Ev[__ZN4geos4geom11LineSegmentD1Ev]+0x0): 
>>> multiple definition of `geos::geom::LineSegment::~LineSegment()'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geom/LineSegment.inl:51: 
>>> first defined here
>>> .libs/libgeos.lax/libalgorithm.a/MCPointInRing.o: In function 
>>> `ZN4geos9algorithm13MCPointInRing10MCSelecterD1Ev':C:/Development/msys/src/geos/trunk/source/algorithm/../../source/headers/geos/algorithm/PointInRing.h:(.text$_ZN4geos4geom11LineSegmentD0Ev[__ZN4geos4geom11LineSegmentD0Ev]+0x0): 
>>> multiple definition of `geos::geom::LineSegment::~LineSegment()'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geom/LineSegment.inl:51: 
>>> first defined here
>>> .libs/libgeos.lax/libalgorithm.a/PointLocator.o: In function 
>>> `ZNSt8_Rb_treeIPKN4geos4geom10LineStringESt4pairIKS4_PNS0_9geomgraph4EdgeEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E':C:/Development/msys/src/geos/trunk/source/algorithm/PointLocator.cpp:(.text$_ZN4geos9geomgraph13GeometryGraphD0Ev[__ZN4geos9geomgraph13GeometryGraphD0Ev]+0x0): 
>>> multiple definition of `geos::geomgraph::GeometryGraph::~GeometryGraph()'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geomgraph/GeometryGraph.inl:46: 
>>> first defined here
>>> .libs/libgeos.lax/libalgorithm.a/PointLocator.o: In function 
>>> `ZNSt8_Rb_treeIPKN4geos4geom10LineStringESt4pairIKS4_PNS0_9geomgraph4EdgeEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E':C:/Development/msys/src/geos/trunk/source/algorithm/PointLocator.cpp:(.text$_ZN4geos9geomgraph13GeometryGraphD1Ev[__ZN4geos9geomgraph13GeometryGraphD1Ev]+0x0): 
>>> multiple definition of `geos::geomgraph::GeometryGraph::~GeometryGraph()'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geomgraph/GeometryGraph.inl:46: 
>>> first defined here
>>> .libs/libgeos.lax/libgeom.a/CoordinateArraySequenceFactory.o: In 
>>> function 
>>> `ZN4geos4geom30CoordinateArraySequenceFactoryD0Ev':C:/Development/msys/src/geos/trunk/source/geom/CoordinateArraySequenceFactory.cpp:27: 
>>> multiple definition of 
>>> `geos::geom::CoordinateArraySequenceFactory::create(std::vector<geos::geom::Coordinate, 
>>> std::allocator<geos::geom::Coordinate> >*) const'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geom/CoordinateArraySequenceFactory.inl:28: 
>>> first defined here
>>> .libs/libgeos.lax/libgeom.a/CoordinateArraySequenceFactory.o: In 
>>> function 
>>> `ZN4geos4geom30CoordinateArraySequenceFactoryD0Ev':C:/Development/msys/src/geos/trunk/source/geom/CoordinateArraySequenceFactory.cpp:27: 
>>> multiple definition of 
>>> `geos::geom::CoordinateArraySequenceFactory::create(unsigned int, unsigned 
>>> int) const'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geom/CoordinateArraySequenceFactory.inl:42: 
>>> first defined here
>>> .libs/libgeos.lax/libgeom.a/MultiLineString.o: In function 
>>> `ZNSt8_Rb_treeIPKN4geos4geom10LineStringESt4pairIKS4_PNS0_9geomgraph4EdgeEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E':c:/Development/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_vector.h:(.text$_ZNK4geos4geom15MultiLineString5cloneEv[__ZNK4geos4geom15MultiLineString5cloneEv]+0x0): 
>>> multiple definition of `geos::geom::MultiLineString::clone() const'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geom/MultiLineString.inl:36: 
>>> first defined here
>>> .libs/libgeos.lax/libgeom.a/MultiPolygon.o: In function 
>>> `ZNSt6vectorIPN4geos4geom8GeometryESaIS3_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS3_S5_EERKS3_':c:/Development/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ext/new_allocator.h:(.text$_ZNK4geos4geom12MultiPolygon5cloneEv[__ZNK4geos4geom12MultiPolygon5cloneEv]+0x0): 
>>> multiple definition of `geos::geom::MultiPolygon::clone() const'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/geom/MultiPolygon.inl:34: 
>>> first defined here
>>> .libs/libgeos.lax/libio.a/WKBReader.o: In function 
>>> `ZSt6fill_nIPPN4geos4geom8GeometryEjS3_ET_S5_T0_RKT1_':C:/Development/msys/src/geos/trunk/source/io/WKBReader.cpp:(.text$_ZN4geos2io21ByteOrderDataInStream7readIntEv[__ZN4geos2io21ByteOrderDataInStream7readIntEv]+0x0): 
>>> multiple definition of `geos::io::ByteOrderDataInStream::readInt()'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/io/ByteOrderDataInStream.inl:66: 
>>> first defined here
>>> .libs/libgeos.lax/libnoding.a/MCIndexNoder.o: In function 
>>> `ZNSt6vectorIPN4geos5index5chain13MonotoneChainESaIS4_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS4_S6_EERKS4_':C:/Development/msys/src/geos/trunk/source/noding/MCIndexNoder.cpp:(.text$_ZNK4geos6noding12MCIndexNoder18getNodedSubstringsEv[__ZNK4geos6noding12MCIndexNoder18getNodedSubstringsEv]+0x0): 
>>> multiple definition of `geos::noding::MCIndexNoder::getNodedSubstrings() 
>>> const'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/noding/MCIndexNoder.inl:35: 
>>> first defined here
>>> .libs/libgeos.lax/libnoding.a/MCIndexSnapRounder.o: In function 
>>> `ZN4geos6noding9snapround18MCIndexSnapRounderD1Ev':C:/Development/msys/src/geos/trunk/source/noding/snapround/MCIndexSnapRounder.cpp:(.text$_ZNK4geos6noding9snapround18MCIndexSnapRounder18getNodedSubstringsEv[__ZNK4geos6noding9snapround18MCIndexSnapRounder18getNodedSubstringsEv]+0x0): 
>>> multiple definition of 
>>> `geos::noding::snapround::MCIndexSnapRounder::getNodedSubstrings() const'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/noding/snapround/MCIndexSnapRounder.inl:32: 
>>> first defined here
>>> .libs/libgeos.lax/liboperation.a/ConnectedInteriorTester.o: In function 
>>> `ZNSt6vectorIPN4geos9geomgraph8EdgeRingESaIS3_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS3_S5_EERKS3_':c:/Development/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/vector.tcc:(.text$_ZN4geos9operation7overlay15MinimalEdgeRing11setEdgeRingEPNS_9geomgraph12DirectedEdgeEPNS3_8EdgeRingE[__ZN4geos9operation7overlay15MinimalEdgeRing11setEdgeRingEPNS_9geomgraph12DirectedEdgeEPNS3_8EdgeRingE]+0x0): 
>>> multiple definition of 
>>> `geos::operation::overlay::MinimalEdgeRing::setEdgeRing(geos::geomgraph::DirectedEdge*, 
>>> geos::geomgraph::EdgeRing*)'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/operation/overlay/MinimalEdgeRing.inl:31: 
>>> first defined here
>>> .libs/libgeos.lax/liboperation.a/ConnectedInteriorTester.o: In function 
>>> `ZNSt6vectorIPN4geos9geomgraph8EdgeRingESaIS3_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS3_S5_EERKS3_':c:/Development/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/vector.tcc:(.text$_ZN4geos9operation7overlay15MinimalEdgeRing7getNextEPNS_9geomgraph12DirectedEdgeE[__ZN4geos9operation7overlay15MinimalEdgeRing7getNextEPNS_9geomgraph12DirectedEdgeE]+0x0): 
>>> multiple definition of 
>>> `geos::operation::overlay::MinimalEdgeRing::getNext(geos::geomgraph::DirectedEdge*)' 
>>>
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/operation/overlay/MinimalEdgeRing.inl:37: 
>>> first defined here
>>> .libs/libgeos.lax/liboperation.a/ConnectedInteriorTester.o: In function 
>>> `ZNSt6vectorIPN4geos9geomgraph8EdgeRingESaIS3_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS3_S5_EERKS3_':c:/Development/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/vector.tcc:(.text$_ZN4geos9operation7overlay15MinimalEdgeRingD1Ev[__ZN4geos9operation7overlay15MinimalEdgeRingD1Ev]+0x0): 
>>> multiple definition of 
>>> `geos::operation::overlay::MinimalEdgeRing::~MinimalEdgeRing()'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/operation/overlay/MinimalEdgeRing.inl:43: 
>>> first defined here
>>> .libs/libgeos.lax/liboperation.a/ConnectedInteriorTester.o: In function 
>>> `ZNSt6vectorIPN4geos9geomgraph8EdgeRingESaIS3_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS3_S5_EERKS3_':c:/Development/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/vector.tcc:(.text$_ZN4geos9operation7overlay15MinimalEdgeRingD0Ev[__ZN4geos9operation7overlay15MinimalEdgeRingD0Ev]+0x0): 
>>> multiple definition of 
>>> `geos::operation::overlay::MinimalEdgeRing::~MinimalEdgeRing()'
>>> .libs/inlines.o:C:/Development/msys/src/geos/trunk/source/../source/headers/geos/operation/overlay/MinimalEdgeRing.inl:43: 
>>> first defined here
>>> make[2]: *** [libgeos.la] Error 1
>>> make[1]: *** [all-recursive] Error 1
>>> make: *** [all-recursive] Error 1
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> geos-devel mailing list
>>> geos-devel at geos.refractions.net
>>> http://geos.refractions.net/mailman/listinfo/geos-devel
> 
> 
> 
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at geos.refractions.net
>> http://geos.refractions.net/mailman/listinfo/geos-devel
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3237 bytes
Desc: S/MIME Cryptographic Signature
Url : http://lists.osgeo.org/pipermail/geos-devel/attachments/20060807/dd127582/smime.bin


More information about the geos-devel mailing list