[GRASS-user] qgis + grass-plugin = gdal-problem (update)

Markus Neteler neteler at osgeo.org
Sun Mar 1 12:20:12 EST 2009


On Fri, Feb 27, 2009 at 11:47 AM, achim <ak7 at jupiter.uni-freiburg.de> wrote:
...
> qgis: symbol lookup error: /usr/lib64/libqgisgrass.so.1.0: undefined
> symbol: G__no_gisinit

Here the full explanations from Glynn to an older mail
with a similar question:

On Thu, Aug 14, 2008 at 5:37 AM, Glynn Clements
<glynn at gclements.plus.com> wrote:
> G. Allegri wrote:
>> Even switching to develbrunch I receive the same error:
>> usr/local/lib/libgdal.so: undefined reference to `G_no_gisinit'
>
> This indicates that your GDAL library was indeed built --with-grass. I
> suggest building it without that option, and using the GDAL-GRASS
> plugin instead.
>
> If you build GDAL -with-grass, you will need to re-compile GDAL every
> time that GRASS is updated from now on. The problem arises from
> r32695, which makes G_gisinit() check that libgis was built with the
> same version of gis.h as the caller.
>
> The change adds G_gisinit() and G_no_gisinit() macros:
>
>        #define GIS_H_VERSION "$Revision: 32726 $"
>
>        #define G_gisinit(pgm) G__gisinit(GIS_H_VERSION, (pgm))
>        #define G_no_gisinit() G__no_gisinit(GIS_H_VERSION)
>
> The value of GIS_H_VERSION is automatically updated to the SVN
> revision whenever gis.h is updated.
>
> The change also renames the functions to G__gisinit() and
> G__no_gisinit() (which is why you get the "undefined reference" error
> when using an old GDAL with a new libgis), and adds version checks:
>
>        int G__gisinit(const char *version, const char *pgm)
>        {
>            ...
>            if (strcmp(version, GIS_H_VERSION) != 0)
>                G_fatal_error(_("Incompatible library version for module"));
>
> Any code which uses G_gisinit() or G_no_gisinit() passes the version
> of gis.h with which it was compiled to the library functions, which
> check that the same version of gis.h was used to compile the library.
>
> The rationale is to avoid having to track down subtle errors caused by
> version incompatibilities between libgis and any code which uses it.
> Now, if there is an incompatibility, you get a very unsubtle error
> telling you that there's an incompatibility.
>
> --
> Glynn Clements <glynn at gclements.plus.com>


Hope this helps,
Markus


More information about the grass-user mailing list