[QGIS-Developer] Compiling QGIS with Debug: error with pdal_wrench and gdal_fwd.h

Jorge Gustavo Rocha jgr at di.uminho.pt
Wed Apr 2 08:36:03 PDT 2025


Hi devs,

I'm not able to compile QGIS with -DCMAKE_BUILD_TYPE=Debug. No problem 
to build QGIS with -DCMAKE_BUILD_TYPE=Release.

I think this happens since the change in GDAL's gdal_fwd.h to support:

#if defined(GDAL_DEBUG)
/** Opaque type for a spatial reference system */
typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH;
/** Opaque type for a coordinate transformation object */
typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH;
#else
/** Opaque type for a spatial reference system */
typedef void *OGRSpatialReferenceH;
/** Opaque type for a coordinate transformation object */
typedef void *OGRCoordinateTransformationH;
#endif

The error I'm getting is:

FAILED: 
src/providers/pdal/CMakeFiles/pdal_wrench.dir/__/__/__/external/pdal_wrench/main.cpp.o 

ccache 
sloppiness=pch_defines,time_macros,include_file_mtime,include_file_ctime 
/usr/bin/c++ -DGDAL_DEBUG -DQT_NO_CAST_TO_ASCII 
-DQT_NO_DEPRECATED_WARNINGS -DQT_USE_QSTRINGBUILDER 
-DSIP_VERSION=0x060806 
-I/home/jgr/dev/cpp/build-qgis-qt6/src/providers/pdal/pdal_wrench_autogen/include 
-I/home/jgr/dev/cpp/build-qgis-qt6 
-I/home/jgr/dev/cpp/QGIS/external/untwine/api 
-I/home/jgr/dev/cpp/QGIS/external -Wall -Wextra -Wno-long-long 
-Wformat-security -Wno-strict-aliasing -Wnon-virtual-dtor 
-Wno-redundant-move -Wno-misleading-indentation -Wreturn-type-c-linkage 
-Woverloaded-virtual -Wimplicit-fallthrough -Qunused-arguments -g 
-std=gnu++17 -fvisibility=hidden -MD -MT 
src/providers/pdal/CMakeFiles/pdal_wrench.dir/__/__/__/external/pdal_wrench/main.cpp.o 
-MF 
src/providers/pdal/CMakeFiles/pdal_wrench.dir/__/__/__/external/pdal_wrench/main.cpp.o.d 
-o 
src/providers/pdal/CMakeFiles/pdal_wrench.dir/__/__/__/external/pdal_wrench/main.cpp.o 
-c /home/jgr/dev/cpp/QGIS/external/pdal_wrench/main.cpp
In file included from 
/home/jgr/dev/cpp/QGIS/external/pdal_wrench/main.cpp:24:
In file included from 
/home/jgr/dev/cpp/QGIS/external/pdal_wrench/alg.hpp:18:
/home/jgr/dev/cpp/QGIS/external/pdal_wrench/utils.hpp:125:16: error: 
static_cast from 'OGRSpatialReferenceH' (aka 'OGRSpatialReferenceHS *') 
to 'OGRSpatialReference *', which are not related by inheritance, is not 
allowed
   125 |     ptr.reset( 
static_cast<OGRSpatialReference*>(OSRNewSpatialReference(s.size() ? 
s.c_str() : nullptr)) );
       | 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/gdal_fwd.h:187:16: note: 'OGRSpatialReferenceHS' is 
incomplete
   187 | typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH;
       |                ^
In file included from 
/home/jgr/dev/cpp/QGIS/external/pdal_wrench/main.cpp:24:
In file included from 
/home/jgr/dev/cpp/QGIS/external/pdal_wrench/alg.hpp:18:
/home/jgr/dev/cpp/QGIS/external/pdal_wrench/utils.hpp:170:11: error: no 
matching function for call to 'OSRDestroySpatialReference'
   170 |           OSRDestroySpatialReference(o);
       |           ^~~~~~~~~~~~~~~~~~~~~~~~~~

The options I'm using to build QGIS are:

cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTS=On 
-DENABLE_PGTEST=OFF -DWITH_SERVER=TRUE -DWITH_QSPATIALITE=TRUE 
-DWITH_3D=TRUE -DGDAL_CONFIG=/usr/local/bin/gdal-config 
-DPROJ_INCLUDE_DIR=/usr/local/include 
-DPROJ_LIBRARY=/usr/local/lib/libproj.so -DWITH_PDAL=TRUE 
-DWITH_EPT=TRUE -DBUILD_WITH_QT6=TRUE -DWITH_QTWEBKIT=FALSE 
-DQWT_LIBRARY=/usr/local/qwt-6.2.0/lib/libqwt.so 
-DQWT_INCLUDE_DIR=/usr/local/qwt-6.2.0/include/ 
-DWITH_CUSTOM_WIDGETS=TRUE ../QGIS

I'm using GDAL and PDAL built from master.

Any clues about the best way to avoid this error?

Thanks,

Jorge



More information about the QGIS-Developer mailing list