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

strk strk at keybit.net
Mon Jul 12 11:00:38 EDT 2004


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;

> 
> 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