[GRASS-dev] r.external and GDAL linking
Glynn Clements
glynn at gclements.plus.com
Thu Sep 9 19:21:28 EDT 2010
William Kyngesburye wrote:
> I just tried r.external for the first time, and while r.external
> successfully created the link raster, any attempt to access the
> raster data results in the error "Unable to load GDAL library".
>
> Looking at where that error comes from, I find lib/gis/gdal.c, where
> it's trying to dynamically load the GDAL library. Looks like it's
> hardwired that way in the lib/gis makefile:
>
> GDAL_DYNAMIC = 1
>
> Is it safe to override this, so that libgis static-links GDAL?
Probably. Doing so does, however, mean that if there's an issue with
GDAL, most of GRASS stops working.
Also, GDAL is written in C++, so any constructors for static variables
get executed at startup (i.e. when the library is loaded). If any of
those constructors do anything "problematic", compile-time linking
means that it will happen whenever you run anything which uses libgis,
regardless of whether it accesses a linked map.
In 7.0, the GDAL support is in the raster library rather than libgis,
which limits the scope of any such issues.
> It
> looks like the makefile and gdal.c are setup to toggle such static
> linking. Shouldn't there be a configure option for this (assuming it
> works)?
Possibly.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list