[gdal-dev] VRT derived band, pixel functions and Python bindings

Even Rouault even.rouault at mines-paris.org
Thu Mar 22 16:55:11 EDT 2012


Le jeudi 22 mars 2012 21:52:03, Armin Burger a écrit :
> On 22/03/2012 21:00, Even Rouault wrote:
> > Le jeudi 22 mars 2012 19:26:56, Armin Burger a écrit :
> >> Hi all
> >> 
> >> I set up 2 pixel functions to be used with VRT images and derived bands.
> >> This works fine with the GDAL utilities and also with MapServer and
> >> Python MapScript.
> >> 
> >> If I try however to load the pixel functions in GDAL-Python as drivers,
> >> I run into problems. The following code
> >> 
> >>     from osgeo import gdal
> >>     import os
> >>     
> >>     os.putenv("GDAL_DRIVER_PATH", "/usr/local/share/gdal/gdalplugins")
> >>     gdal.AllRegister()
> >> 
> >> produces the error:
> >> 
> >> python: symbol lookup error: /usr/local/share/gdal/gdalplugins
> >> /gdal_SpotBlue.so: undefined symbol: GDALAddDerivedBandPixelFunc
> >> 
> >> 
> >> So is this sort of a bug or is this functionality not available via the
> >> GDAL Python bindings? Environment is Linux, GDAL 1.9, Python 2.6.
> > 
> > No fundamental reason it should not work. I'm pretty sure to have done
> > that in the past. Did you make sure that your gdal_SpotBlue.so links to
> > libgdal.so (check with ldd) ? But I'm not sure why loading throug python
> > would make a difference w.r.t loading with GDAL utilities or MapServer.
> 
> Even
> 
> compilation was with
> 
> gcc -fPIC -c SpotBlue.c
> gcc -shared SpotBlue.o -o SpotBlue.so
> 
> 
> So no spacial linking against libgdal.so. ldd therefore does not report
> anything related to the libgdal.so. But since it directly worked from
> the normal GDAL utilities and MapScript I did not check anything further.
> 
> What would be your suggestion for additional flags to add for the
> compilation?

Try : gcc -shared SpotBlue.o -o SpotBlue.so -lgdal

> 
> Armin


More information about the gdal-dev mailing list