[gdal-dev] Cannot Build GDAL 3.1.0 on Ubuntu 18.04

Ben Van Riper bengvr at gmail.com
Tue May 26 14:42:52 PDT 2020


Upgrading to GRASS 7.8 fixed that problem, and consequentially revealed
another one. I'm going to trim some of the output because there's a lot of
it.


> In file included from /usr/include/c++/7/list:63:0,
>                  from
> /home/ben/software/gdal/gdal-3.1.0/port/cpl_mem_cache.h:37,
>                  from ogr_proj_p.h:34,
>                  from ogrspatialreference.cpp:53:
> /usr/include/c++/7/bits/stl_list.h:503:11: note:   ‘std::__cxx11::list’
>      class list : protected _List_base<_Tp, _Alloc>
>            ^~~~
> /usr/include/c++/7/bits/stl_list.h:503:11: note:   ‘std::__cxx11::list’
> ogrspatialreference.cpp:10880:64: error: ‘type’ was not declared in this
> scope
>          d->getPROJContext(), "ESRI", "NAD_1983_HARN_WISCRS_", &type, 1,
> true,
>                                                                 ^~~~
> ogrspatialreference.cpp:10880:64: note: suggested alternative: ‘pipe’
>          d->getPROJContext(), "ESRI", "NAD_1983_HARN_WISCRS_", &type, 1,
> true,
>                                                                 ^~~~
>                                                                 pipe
> ogrspatialreference.cpp:10879:25: error: ‘proj_create_from_name’ was not
> declared in this scope
>      PJ_OBJ_LIST* list = proj_create_from_name(
>                          ^~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10879:25: note: suggested alternative:
> ‘proj_create_argv’
>      PJ_OBJ_LIST* list = proj_create_from_name(
>                          ^~~~~~~~~~~~~~~~~~~~~
>                          proj_create_argv
> ogrspatialreference.cpp:10884:31: error: ‘proj_list_get_count’ was not
> declared in this scope
>          const auto listSize = proj_list_get_count(list);
>                                ^~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10884:31: note: suggested alternative:
> ‘proj_list_units’
>          const auto listSize = proj_list_get_count(list);
>                                ^~~~~~~~~~~~~~~~~~~
>                                proj_list_units
> ogrspatialreference.cpp:10887:24: error: ‘proj_list_get’ was not declared
> in this scope
>              auto crs = proj_list_get(d->getPROJContext(), list, i);
>                         ^~~~~~~~~~~~~
> ogrspatialreference.cpp:10887:24: note: suggested alternative:
> ‘proj_list_units’
>              auto crs = proj_list_get(d->getPROJContext(), list, i);
>                         ^~~~~~~~~~~~~
>                         proj_list_units
> ogrspatialreference.cpp:10893:25: error: ‘proj_crs_get_coordoperation’ was
> not declared in this scope
>              auto conv = proj_crs_get_coordoperation(
>                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10893:25: note: suggested alternative:
> ‘proj_list_operations’
>              auto conv = proj_crs_get_coordoperation(
>                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>                          proj_list_operations
> ogrspatialreference.cpp:10901:13: error:
> ‘proj_coordoperation_get_method_info’ was not declared in this scope
>              proj_coordoperation_get_method_info(
>              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10914:29: error: ‘proj_crs_get_coordinate_system’
> was not declared in this scope
>              auto coordSys = proj_crs_get_coordinate_system(
>                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10924:13: error: ‘proj_cs_get_axis_info’ was not
> declared in this scope
>              proj_cs_get_axis_info(
>              ^~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10924:13: note: suggested alternative:
> ‘proj_grid_info’
>              proj_cs_get_axis_info(
>              ^~~~~~~~~~~~~~~~~~~~~
>              proj_grid_info
> ogrspatialreference.cpp:10938:27: error:
> ‘proj_coordoperation_get_param_index’ was not declared in this scope
>              int idx_lat = proj_coordoperation_get_param_index(
>                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10942:13: error: ‘proj_coordoperation_get_param’
> was not declared in this scope
>              proj_coordoperation_get_param(
>              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10959:17: error: ‘proj_list_destroy’ was not
> declared in this scope
>                  proj_list_destroy(list);
>                  ^~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10959:17: note: suggested alternative:
> ‘proj_destroy’
>                  proj_list_destroy(list);
>                  ^~~~~~~~~~~~~~~~~
>                  proj_destroy
> ogrspatialreference.cpp:10967:9: error: ‘proj_list_destroy’ was not
> declared in this scope
>          proj_list_destroy(list);
>          ^~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:10967:9: note: suggested alternative:
> ‘proj_destroy’
>          proj_list_destroy(list);
>          ^~~~~~~~~~~~~~~~~
>          proj_destroy
> ogrspatialreference.cpp: In member function ‘bool
> OGRSpatialReference::GetAreaOfUse(double*, double*, double*, double*, const
> char**) const’:
> ogrspatialreference.cpp:11172:20: error: ‘proj_get_area_of_use’ was not
> declared in this scope
>      int bSuccess = proj_get_area_of_use(
>                     ^~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11172:20: note: suggested alternative:
> ‘proj_errno_set’
>      int bSuccess = proj_get_area_of_use(
>                     ^~~~~~~~~~~~~~~~~~~~
>                     proj_errno_set
> ogrspatialreference.cpp: In function ‘OSRCRSInfo**
> OSRGetCRSInfoListFromDatabase(const char*, const OSRCRSListParameters*,
> int*)’:
> ogrspatialreference.cpp:11237:21: error:
> ‘proj_get_crs_info_list_from_database’ was not declared in this scope
>      auto projList =
> proj_get_crs_info_list_from_database(OSRGetProjTLSContext(),
>                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11237:21: note: suggested alternative:
> ‘OSRGetCRSInfoListFromDatabase’
>      auto projList =
> proj_get_crs_info_list_from_database(OSRGetProjTLSContext(),
>                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                      OSRGetCRSInfoListFromDatabase
> ogrspatialreference.cpp:11260:18: error: ‘PJ_TYPE_GEOGRAPHIC_2D_CRS’ was
> not declared in this scope
>              case PJ_TYPE_GEOGRAPHIC_2D_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11260:18: note: suggested alternative:
> ‘OSR_CRS_TYPE_GEOGRAPHIC_2D’
>              case PJ_TYPE_GEOGRAPHIC_2D_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~~~~~
>                   OSR_CRS_TYPE_GEOGRAPHIC_2D
> ogrspatialreference.cpp:11262:18: error: ‘PJ_TYPE_GEOGRAPHIC_3D_CRS’ was
> not declared in this scope
>              case PJ_TYPE_GEOGRAPHIC_3D_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11262:18: note: suggested alternative:
> ‘OSR_CRS_TYPE_GEOGRAPHIC_3D’
>              case PJ_TYPE_GEOGRAPHIC_3D_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~~~~~
>                   OSR_CRS_TYPE_GEOGRAPHIC_3D
> ogrspatialreference.cpp:11264:18: error: ‘PJ_TYPE_GEOCENTRIC_CRS’ was not
> declared in this scope
>              case PJ_TYPE_GEOCENTRIC_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11264:18: note: suggested alternative:
> ‘OSR_CRS_TYPE_GEOCENTRIC’
>              case PJ_TYPE_GEOCENTRIC_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~~
>                   OSR_CRS_TYPE_GEOCENTRIC
> ogrspatialreference.cpp:11266:18: error: ‘PJ_TYPE_PROJECTED_CRS’ was not
> declared in this scope
>              case PJ_TYPE_PROJECTED_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11266:18: note: suggested alternative:
> ‘OSR_CRS_TYPE_PROJECTED’
>              case PJ_TYPE_PROJECTED_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~~
>                   OSR_CRS_TYPE_PROJECTED
> ogrspatialreference.cpp:11268:18: error: ‘PJ_TYPE_VERTICAL_CRS’ was not
> declared in this scope
>              case PJ_TYPE_VERTICAL_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11270:18: error: ‘PJ_TYPE_COMPOUND_CRS’ was not
> declared in this scope
>              case PJ_TYPE_COMPOUND_CRS:
>                   ^~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11287:5: error: ‘proj_crs_info_list_destroy’ was
> not declared in this scope
>      proj_crs_info_list_destroy(projList);
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11287:5: note: suggested alternative:
> ‘proj_context_destroy’
>      proj_crs_info_list_destroy(projList);
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~
>      proj_context_destroy
> ogrspatialreference.cpp: In member function ‘void
> OGRSpatialReference::UpdateCoordinateSystemFromGeogCRS()’:
> ogrspatialreference.cpp:11332:12: error: ‘struct
> OGRSpatialReference::Private’ has no member named ‘m_pjType’; did you mean
> ‘m_pj_crs’?
>      if( d->m_pjType != PJ_TYPE_PROJECTED_CRS )
>             ^~~~~~~~
>             m_pj_crs
> ogrspatialreference.cpp:11332:24: error: ‘PJ_TYPE_PROJECTED_CRS’ was not
> declared in this scope
>      if( d->m_pjType != PJ_TYPE_PROJECTED_CRS )
>                         ^~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11332:24: note: suggested alternative:
> ‘OSR_CRS_TYPE_PROJECTED’
>      if( d->m_pjType != PJ_TYPE_PROJECTED_CRS )
>                         ^~~~~~~~~~~~~~~~~~~~~
>                         OSR_CRS_TYPE_PROJECTED
> ogrspatialreference.cpp:11337:20: error: ‘proj_crs_get_geodetic_crs’ was
> not declared in this scope
>      auto baseCRS = proj_crs_get_geodetic_crs(ctxt, d->m_pj_crs);
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11337:20: note: suggested alternative:
> ‘proj_create_crs_to_crs’
>      auto baseCRS = proj_crs_get_geodetic_crs(ctxt, d->m_pj_crs);
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~
>                     proj_create_crs_to_crs
> ogrspatialreference.cpp:11340:22: error: ‘proj_crs_get_coordinate_system’
> was not declared in this scope
>      auto baseCRSCS = proj_crs_get_coordinate_system(ctxt, baseCRS);
>                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11346:9: error: ‘proj_cs_get_axis_count’ was not
> declared in this scope
>      if( proj_cs_get_axis_count(ctxt, baseCRSCS) != 3 )
>          ^~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11353:20: error: ‘proj_cs_get_axis_count’ was not
> declared in this scope
>      if( !projCS || proj_cs_get_axis_count(ctxt, projCS) != 2 )
>                     ^~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11369:9: error: ‘proj_cs_get_axis_info’ was not
> declared in this scope
>          proj_cs_get_axis_info(ctxt,
>          ^~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11369:9: note: suggested alternative:
> ‘proj_grid_info’
>          proj_cs_get_axis_info(ctxt,
>          ^~~~~~~~~~~~~~~~~~~~~
>          proj_grid_info
> ogrspatialreference.cpp:11386:36: error: ‘PJ_CS_TYPE_CARTESIAN’ was not
> declared in this scope
>      auto cs = proj_create_cs(ctxt, PJ_CS_TYPE_CARTESIAN, 3, axis);
>                                     ^~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11386:36: note: suggested alternative:
> ‘OSR_CRS_TYPE_VERTICAL’
>      auto cs = proj_create_cs(ctxt, PJ_CS_TYPE_CARTESIAN, 3, axis);
>                                     ^~~~~~~~~~~~~~~~~~~~
>                                     OSR_CRS_TYPE_VERTICAL
> ogrspatialreference.cpp:11386:15: error: ‘proj_create_cs’ was not declared
> in this scope
>      auto cs = proj_create_cs(ctxt, PJ_CS_TYPE_CARTESIAN, 3, axis);
>                ^~~~~~~~~~~~~~
> ogrspatialreference.cpp:11386:15: note: suggested alternative:
> ‘proj_create’
>      auto cs = proj_create_cs(ctxt, PJ_CS_TYPE_CARTESIAN, 3, axis);
>                ^~~~~~~~~~~~~~
>                proj_create
> ogrspatialreference.cpp:11399:23: error: ‘proj_crs_get_coordoperation’ was
> not declared in this scope
>      auto conversion = proj_crs_get_coordoperation(ctxt, d->m_pj_crs);
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11399:23: note: suggested alternative:
> ‘proj_list_operations’
>      auto conversion = proj_crs_get_coordoperation(ctxt, d->m_pj_crs);
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>                        proj_list_operations
> ogrspatialreference.cpp:11400:16: error: ‘proj_create_projected_crs’ was
> not declared in this scope
>      auto crs = proj_create_projected_crs(ctxt,
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~
> ogrspatialreference.cpp:11400:16: note: suggested alternative:
> ‘proj_create_crs_to_crs’
>      auto crs = proj_create_projected_crs(ctxt,
>                 ^~~~~~~~~~~~~~~~~~~~~~~~~
>                 proj_create_crs_to_crs
> ogrspatialreference.cpp: At global scope:
> ogrspatialreference.cpp:322:13: warning: ‘bool
> isNorthEastAxisOrder(PJ_CONTEXT*, PJ*)’ defined but not used
> [-Wunused-function]
>  static bool isNorthEastAxisOrder(PJ_CONTEXT* ctx, PJ* cs)
>              ^~~~~~~~~~~~~~~~~~~~
> ../GDALmake.opt:655: recipe for target 'ogrspatialreference.lo' failed
> make[1]: *** [ogrspatialreference.lo] Error 1
> make[1]: Leaving directory '/home/ben/software/gdal/gdal-3.1.0/ogr'
> GNUmakefile:91: recipe for target 'ogr-target' failed
> make: *** [ogr-target] Error 2
>

On Tue, May 26, 2020 at 5:05 PM Even Rouault <even.rouault at spatialys.com>
wrote:

> On mardi 26 mai 2020 17:02:12 CEST Ben Van Riper wrote:
>
> > I undid the changes that I made to the makefiles and am now getting the
>
> >
>
> > following error:
>
> > > make[2]: Entering directory
>
> > > '/home/ben/software/gdal/gdal-3.1.0/frmts/grass'
>
> > > /bin/bash /home/ben/software/gdal/gdal-3.1.0/libtool --mode=compile
>
> > > --silent --tag=CXX g++ -I/home/ben/software/gdal/gdal-3.1.0/port
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/gcore
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/alg
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/ogr
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/ogr/ogrsf_frmts
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/gnm
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/apps -DHAVE_AVX_AT_COMPILE_TIME
>
> > > -DHAVE_SSSE3_AT_COMPILE_TIME -DHAVE_SSE_AT_COMPILE_TIME -g -O2 -Wall
>
> > > -Wextra -Winit-self -Wunused-parameter -Wformat -Werror=format-security
>
> > > -Wno-format-nonliteral -Wlogical-op -Wshadow -Werror=vla -Wdate-time
>
> > > -Wnull-dereference -Wduplicated-cond -Wfloat-conversion
>
> > > -Wmissing-declarations -Wnon-virtual-dtor -Woverloaded-virtual
>
> > > -fno-operator-names -Wzero-as-null-pointer-constant -Wsuggest-override
>
> > > -Wimplicit-fallthrough -DGRASS_GISBASE=\"/usr/lib/grass74\"
>
> > > -I/usr/lib/grass74/include -I/usr/local/include -DGNM_ENABLED
> -D_REENTRANT
>
> > >
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/port -I/usr/include/openjpeg-2.3
>
> > >
>
> > > -I/usr/include -I/usr/local/share/libgta
> -I/usr/local/share/libgta/include
>
> > > -I/usr -I/usr/include -DGDAL_COMPILATION -DHAVE_XERCES -I/usr/include
>
> > > -I/usr/include/xercesc -D_REENTRANT
>
> > >
>
> > > -I/home/ben/software/gdal/gdal-3.1.0/port -I/usr/include/openjpeg-2.3
>
> > >
>
> > > -I/usr/include -I/usr/local/share/libgta
> -I/usr/local/share/libgta/include
>
> > > -I/usr -I/usr/include -DGDAL_COMPILATION -c -o ../o/grass57dataset.lo
>
> > > grass57dataset.cpp
>
> > > In file included from /usr/lib/grass74/include/grass/gprojects.h:21:0,
>
> > >
>
> > > from grass57dataset.cpp:50:
>
> > > /usr/local/include/proj_api.h:37:2: error: #error 'To use the
> proj_api.h
>
> > > you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
>
> > >
>
> > > #error 'To use the proj_api.h you must define the macro
>
> > >
>
> > > ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
>
> > >
>
> > > ^~~~~
>
> > >
>
> > > ../../GDALmake.opt:649: recipe for target '../o/grass57dataset.lo'
> failed
>
> > > make[2]: *** [../o/grass57dataset.lo] Error 1
>
> > > make[2]: Leaving directory
>
> > > '/home/ben/software/gdal/gdal-3.1.0/frmts/grass'
>
> > > GNUmakefile:15: recipe for target 'grass-install-obj' failed
>
> > > make[1]: *** [grass-install-obj] Error 2
>
> > > make[1]: Leaving directory '/home/ben/software/gdal/gdal-3.1.0/frmts'
>
> > > GNUmakefile:105: recipe for target 'frmts-target' failed
>
> > > make: *** [frmts-target] Error 2
>
> >
>
> > When you say that my environment might be linking against the proj.h from
>
> > PROJ5, I think that's possible, and if I'm not mistaken, I did have PROJ5
>
> > installed (or was it 4?) when I compiled GDAL v2.4.0. I suppose I can
>
> > uninstall the old version and try again, but does that explain the
> current
>
> > error I'm having?
>
>
>
> Ah that might be something different. It might be that grass 7.4 still
> tries to use the old proj_api.h. I'm not completely sure of the effect of
> building GDAL 3 with ACCEPT_USE_OF_DEPRECATED_PROJ_API_H defined. I'd say,
> either drop the GRASS driver if you don't need it, or upgrade to a more
> recent GRASS version that can use PROJ >= 5 API
>
>
>
> --
>
> Spatialys - Geospatial professional services
>
> http://www.spatialys.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20200526/a77fde6d/attachment-0001.html>


More information about the gdal-dev mailing list