[Python] Cython ImportError: ./region.so: undefined symbol: G_get_window

Pietro peter.zamb a gmail.com
Sab 10 Ago 2013 21:11:14 CEST


Grazie, mi stai chiarendo le idee!

2013/8/10 Enrico Franchi <enrico.franchi a gmail.com>:
>
> On Aug 10, 2013, at 7:40 PM, Pietro <peter.zamb a gmail.com> wrote:
>
>> Come devo fare per fare il link a "grass/gis.h"?
>
> Non puoi linkare ad un header. Quello che devi fare e' linkare alla libreria dinamica di GIS.

ok, il mio include e la mia libreria compilata sono rispettivamente in::

$GISBASE/include
$GISBASE/lib

La directory $GISBASE/lib contiene: libgrass_gis.so che dovrebbe
essere la versione compilata della libreria, come faccio a linkarla
con cython?
sto cercando nella documentazione [0], ma essendo una cosa nuova non
sto riuscendo a capire come fare.

come suggerito nella documentazione ho provato ad aggiungere al mio
setup: libraries=["gis"], ho provato anche libgrass_gis e
libgrass_gis.so
ma ottengo un errore, perché non trova la libreria:

$ CFLAGS="-I$GISBASE/include"  \
> LDFLAGS="-L$GISBASE/lib" \
> python setup.py build_ext --inplace --force
running build_ext
cythoning region.pyx to region.c
building 'region' extension

[cut]

/usr/bin/ld: cannot find -lgis
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1


Come posso fare per risolvere?

Grazie

Pietro

[0] http://docs.cython.org/src/tutorial/clibraries.html#compiling-and-linking


Maggiori informazioni sulla lista Python