[geos-devel] Using SWIG to interface with GEOS, undefined symbols

Sean Gillies sgillies at frii.com
Mon Jul 12 11:10:53 EDT 2004


On Jul 12, 2004, at 9:00 AM, strk wrote:

> On Mon, Jul 12, 2004 at 08:41:07AM -0600, Sean Gillies wrote:
>> Hi all,
>>
>> Yesterday I began to try to use SWIG to generate a Python
>> GEOS module using the CVS GEOS.  To start, I am only wrapping
>> the classes in geom.h and precision.h.
>
> precision.h does not really contain 'basic' classes.
> PrecisionModel class is in geom.h.
>
>> SWIG 1.3.20 generates wrapper code with only a few warnings
>> and the module does build, resulting in geos.py and a very
>> large _geos.so (I have statically linked against libgeos.a).
>>
>> On import of the geos module, an import error is raised:
>>
>>   ImportError:
>> /home/sean/projects/PyGEOS/build/lib.linux-i686-2.3/_geos.so:
>>   undefined symbol: _ZN4geos14PrecisionModel19maximumPreciseValueE
>
> Could you have built _geos.so and the geos.py in at different times ?
> CVS api is changing , and you get those kind of errors for every simple
> 'const' addition.
>
> --strk;
>

Thanks for the reply!  _geos.so and geos.py are synchronous, no problem
there.  I was having this same issue with GEOS 1.0 and SWIG, so I am
ruling out API changes.  It's either my lack of knowledge of C++, some
undocumented SWIG issue or a combination of these.

Sean

>>
>> I think there is a problem not just with this symbol but with others.
>> If I comment out the reference to the above in the GEOS wrapper and
>> rebuild, I get an ImportError with a different undefined symbol.
>> The symbols *are* in libgeos.a, and I'm certain that I've properly
>> linked.
>> I'm making sure to use g++ for the linker, avoiding one of the most
>> common SWIG C++ module pitfalls.
>>
>> Anyone else taken a swing at a GEOS module with SWIG and run into
>> this problem?
>>
>> Sean
>>
>>
>> --
>> Sean Gillies
>> sgillies at frii dot com
>> http://users.frii.com/sgillies
>>
>> _______________________________________________
>> 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