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.

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
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to