[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