[gdal-dev] gdal trunk compatibility

Even Rouault even.rouault at spatialys.com
Tue Mar 3 01:26:51 PST 2015


Le mardi 03 mars 2015 10:06:51, Vincent Schut a écrit :
> Hi folks,
> 
> I'd like to revive this thread a bit, because I'm trying to compile
> rsgislib (https://bitbucket.org/petebunting/rsgislib, a c++ rs/gis library
> which links with gdal) against my trunk version of gdal 2.0, which does
> not work. It does work with gdal 1.x, though. I'd like to get your opinion
> whether this is something that should be dealt with in rsgislib, or if it
> is seen as an unwanted incompatability between gdal 1.x and 2.x, and
> should be fixed in gdal.

Vincent,

Those are intented changes. They are adressed by 
http://svn.osgeo.org/gdal/trunk/gdal/MIGRATION_GUIDE.TXT (RFC 46)

Even

> 
> Initially I get the following error:
> 
> [ 21%] Building CXX object
> src/CMakeFiles/rsgis_geom.dir/geom/RSGISGeomTestExport.cpp.o
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp: In member
> function ‘void
> rsgis::geom::RSGISGeomTestExport::exportGEOSPolygons2SHP(std::string,
> bool, std::list<geos::geom::Polygon*>*)’:
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp:291:87: error:
> invalid conversion from ‘GDALDriver*’ to ‘OGRSFDriver*’ [-fpermissive]
> shpFiledriver =
> OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(pszDriverName ); ^
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp: In member
> function ‘void
> rsgis::geom::RSGISGeomTestExport::exportGEOSPolygons2SHP(std::string,
> bool, std::vector<geos::geom::Polygon*>*)’:
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp:364:87: error:
> invalid conversion from ‘GDALDriver*’ to ‘OGRSFDriver*’ [-fpermissive]
> shpFiledriver =
> OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(pszDriverName ); ^
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp: In member
> function ‘void
> rsgis::geom::RSGISGeomTestExport::exportGEOSCoordinates2SHP(std::string,
> bool, std::vector<geos::geom::Coordinate*>*)’:
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp:437:87: error:
> invalid conversion from ‘GDALDriver*’ to ‘OGRSFDriver*’ [-fpermissive]
> shpFiledriver =
> OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(pszDriverName ); ^
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp: In member
> function ‘void
> rsgis::geom::RSGISGeomTestExport::exportGEOSLineStrings2SHP(std::string,
> bool, std::vector<geos::geom::LineString*>*)’:
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp:510:87: error:
> invalid conversion from ‘GDALDriver*’ to ‘OGRSFDriver*’ [-fpermissive]
> shpFiledriver =
> OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(pszDriverName ); ^
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp: In member
> function ‘void
> rsgis::geom::RSGISGeomTestExport::exportGEOSLineSegments2SHP(std::string,
> bool, std::vector<geos::geom::LineSegment*>*)’:
> /usr/local/src/rsgislib/src/geom/RSGISGeomTestExport.cpp:584:87: error:
> invalid conversion from ‘GDALDriver*’ to ‘OGRSFDriver*’ [-fpermissive]
> shpFiledriver =
> OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(pszDriverName ); ^
> src/CMakeFiles/rsgis_geom.dir/build.make:169: recipe for target
> 'src/CMakeFiles/rsgis_geom.dir/geom/RSGISGeomTestExport.cpp.o' failed
> make[2]: ***
> [src/CMakeFiles/rsgis_geom.dir/geom/RSGISGeomTestExport.cpp.o] Error 1
> CMakeFiles/Makefile2:487: recipe for target
> 'src/CMakeFiles/rsgis_geom.dir/all' failed make[1]: ***
> [src/CMakeFiles/rsgis_geom.dir/all] Error 2
> 
> 
> If I rebuild with -fpermissive, compilation continues a bit further, but
> then halts here:
> 
> [ 65%] Building CXX object
> src/CMakeFiles/rsgis_classify.dir/classifier/RSGISClassificationUtils.cpp.
> o /usr/local/src/rsgislib/src/classifier/RSGISClassificationUtils.cpp: In
> member function ‘void
> rsgis::classifier::RSGISClassificationUtils::convertShapeFile2SpecLib(std:
> :string, std::string, std::string, std::vector<std::basic_string<char> >*,
> bool)’:
> /usr/local/src/rsgislib/src/classifier/RSGISClassificationUtils.cpp:174:17
> : error: ‘Open’ is not a member of ‘OGRSFDriverRegistrar’ inputSHPDS =
> OGRSFDriverRegistrar::Open(vector.c_str(), FALSE); ^
> src/CMakeFiles/rsgis_classify.dir/build.make:77: recipe for target
> 'src/CMakeFiles/rsgis_classify.dir/classifier/RSGISClassificationUtils.cpp
> .o' failed make[2]: ***
> [src/CMakeFiles/rsgis_classify.dir/classifier/RSGISClassificationUtils.cpp
> .o] Error 1 CMakeFiles/Makefile2:290: recipe for target
> 'src/CMakeFiles/rsgis_classify.dir/all' failed make[1]: ***
> [src/CMakeFiles/rsgis_classify.dir/all] Error 2
> 
> 
> This is clearly a compatibiliby issue with the new gdal 2.0 raster/vector
> unification. Question is: is this something that should be fixed within
> gdal, or should it be changed in rsgislib?
> 
> Thanks for your insights!
> Vincent.
> 
> On 12/16/14 11:27, Even Rouault wrote:
> > Le mardi 16 décembre 2014 11:06:14, Vincent Schut a écrit :
> >> Folks,
> >> 
> >> I'd like to use gdal-trunk (e.g. 2.0) for all the new features and
> >> improvements, but I wonder about its compatibility with other software.
> >> Is gdal 2.0 supposed to work transparently with libraries/programs that
> >> used to link against gdal 1.11, e.g. qgis, postgis, etc.?
> > 
> > Vincent,
> > 
> > They mostly work unmodified, although you could run into a few problems
> > if opening a dataset with curve geometries in QGIS for example (but
> > there be some work to use OGR curve geometries in QGIS soon)
> > 
> >> Reason I ask is I get a configure error with postgis trying to find
> >> gdal:
> >> 
> >> RASTER: Raster support requested
> >> checking for gdal-config... /usr/local/bin/gdal-config
> >> checking GDAL version... 2.0.0
> >> checking for OGR enabled... yes
> >> checking gdal.h usability... yes
> >> checking gdal.h presence... yes
> >> checking for gdal.h... yes
> >> checking ogr_api.h usability... yes
> >> checking ogr_api.h presence... yes
> >> checking for ogr_api.h... yes
> >> checking cpl_conv.h usability... yes
> >> checking cpl_conv.h presence... yes
> >> checking for cpl_conv.h... yes
> >> checking for library containing GDALAllRegister... no
> >> configure: error: could not find GDAL
> >> 
> >> the last line ("checking for library containing GDALAllRegister...")
> >> takes a long time and then fails...
> > 
> > I know PostGIS has a continuous testing system tracking GDAL trunk, so
> > I'd say the issue is more on your side. GDALAllRegister is definitely a
> > symbol that still exists in GDAL 2.0dev
> > 
> > http://debbie.postgis.net:8080/job/GDAL_PostGIS_Regress/2074/consoleFull
> > 
> > Even
> > 
> >> Thanks,
> >> Vincent.
> >> _______________________________________________
> >> gdal-dev mailing list
> >> gdal-dev at lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/gdal-dev
> 
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list