Hi Hernan, Nlohmann json got updated to 3.11.3 in https://github.com/qgis/QGIS/pull/61597 a few days ago, maybe you could try building master before that?
Best Stefanos On Tue, Apr 29, 2025, 10:04 AM Hernán De Angelis via QGIS-Developer < qgis-developer@lists.osgeo.org> wrote: > Hi > > I seek help in understanding errors (see excerpt below) I am currently > experiencing while building QGIS master in a fresh openSUSE Tumbleweed > install. These errors seem to originate in nlohmann json. I am used to > compile QGIS from source but never seen these errors before and have > trouble figuring out where they originate and what a possible solution > could be. > > I am using Qt 6.9.0, and tried compiling using both GCC 14 and 15. Passing > the CXX flag "-std=c++17" does not seem to help. I tried using NLOHMANN > both internal and also using the latest version compiled locally (3.12, as > in error log below) but both fail in a similar way. > > I compiled QGIS master as late as 6 april without problems in a previous > openSUSE install. There is a very real the possibility that recent > changes in GCC14 and 15 regarding required standards are playing a part > here, as well as packaging changes in openSUSE Tumbleweed. However, as I am > unsure what the cause may be I would like to ask the developers if these > errors look familiar to you and if they suggest something. > > Thanks in advance > > Hernán > > > > > > > > > [ 12%] Built target staged-plugins-on-build > In file included from > /usr/local/src/QGIS/external/nlohmann/detail/value_t.hpp:16, > from > /usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:20, > from > /usr/local/src/QGIS/external/nlohmann/detail/conversions/from_json.hpp:23, > from > /usr/local/src/QGIS/external/nlohmann/adl_serializer.hpp:14, > from /usr/local/src/QGIS/external/nlohmann/json.hpp:34, > from /usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:26: > /usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63: > error: wrong number of template arguments (11, should be at least 0) > 257 | AllocatorType, JSONSerializer, BinaryType, CustomBaseClass> > | ^ > /usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:22: > note: in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’ > 53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {}; > | ^~~~~~~~~~~~~~~~~~~~~~~ > In file included from /usr/local/include/pdal/PDALUtils.hpp:39, > from /usr/local/include/pdal/PointRef.hpp:37, > from /usr/local/include/pdal/Geometry.hpp:37, > from /usr/local/src/QGIS/external/pdal_wrench/vpc.hpp:18, > from /usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:19: > /usr/local/include/pdal/JsonFwd.hpp:40:7: note: provided for > ‘template<template<class U, class V, class ... Args> class ObjectType, > template<class U, class ... Args> class ArrayType, class StringType, class > BooleanType, class NumberIntegerType, class NumberUnsignedType, class > NumberFloatType, template<class U> class AllocatorType, template<class T, > class SFINAE> class JSONSerializer, class BinaryType> class > nlohmann::basic_json’ > 40 | class basic_json; > | ^~~~~~~~~~ > In file included from > /usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:25: > /usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:45: > error: template argument 1 is invalid > 53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {}; > | ^ > /usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63: > error: wrong number of template arguments (11, should be at least 0) > 257 | AllocatorType, JSONSerializer, BinaryType, CustomBaseClass> > | ^ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:28: note: > in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’ > 51 | struct string_t_helper<NLOHMANN_BASIC_JSON_TPL> > | ^~~~~~~~~~~~~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:40:7: note: provided for > ‘template<template<class U, class V, class ... Args> class ObjectType, > template<class U, class ... Args> class ArrayType, class StringType, class > BooleanType, class NumberIntegerType, class NumberUnsignedType, class > NumberFloatType, template<class U> class AllocatorType, template<class T, > class SFINAE> class JSONSerializer, class BinaryType> class > nlohmann::basic_json’ > 40 | class basic_json; > | ^~~~~~~~~~ > In file included from /usr/local/src/QGIS/external/nlohmann/json.hpp:50: > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:51: > error: template argument 1 is invalid > 51 | struct string_t_helper<NLOHMANN_BASIC_JSON_TPL> > | ^ > /usr/local/src/QGIS/external/nlohmann/json.hpp:104:30: error: reference to > ‘json_pointer’ is ambiguous > 104 | friend class ::nlohmann::json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:166:26: error: reference to > ‘json_pointer’ is ambiguous > 166 | using json_pointer = ::nlohmann::json_pointer<StringType>; > | ^~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2327:21: error: missing > template argument list after ‘nlohmann::json_abi_v3_11_3::json_pointer’; > template placeholder not permitted in parameter > 2327 | ValueType value(const json_pointer& ptr, const ValueType& > default_value) const > | ^~~~~ > | <> > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ declared here > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2352:22: error: missing > template argument list after ‘nlohmann::json_abi_v3_11_3::json_pointer’; > template placeholder not permitted in parameter > 2352 | ReturnType value(const json_pointer& ptr, ValueType && > default_value) const > | ^~~~~ > | <> > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ declared here > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2376:27: error: reference > to ‘json_pointer’ is ambiguous > 2376 | ValueType value(const ::nlohmann::json_pointer<BasicJsonType>& > ptr, const ValueType& default_value) const > | ^~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2376:51: error: expected > ‘,’ or ‘...’ before ‘<’ token > 2376 | ValueType value(const ::nlohmann::json_pointer<BasicJsonType>& > ptr, const ValueType& default_value) const > | ^ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2387:28: error: reference > to ‘json_pointer’ is ambiguous > 2387 | ReturnType value(const > ::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType && default_value) > const > | ^~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2387:52: error: expected > ‘,’ or ‘...’ before ‘<’ token > 2387 | ReturnType value(const > ::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType && default_value) > const > | ^ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2745:19: error: missing > template argument list after ‘nlohmann::json_abi_v3_11_3::json_pointer’; > template placeholder not permitted in parameter > 2745 | bool contains(const json_pointer& ptr) const > | ^~~~~ > | <> > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ declared here > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2752:46: error: reference > to ‘json_pointer’ is ambiguous > 2752 | bool contains(const typename > ::nlohmann::json_pointer<BasicJsonType>& ptr) const > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:2752:58: error: expected > ‘,’ or ‘...’ before ‘<’ token > 2752 | bool contains(const typename > ::nlohmann::json_pointer<BasicJsonType>& ptr) const > | ^ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4618:26: error: missing > template argument list after ‘nlohmann::json_abi_v3_11_3::json_pointer’; > template placeholder not permitted in parameter > 4618 | reference operator[](const json_pointer& ptr) > | ^~~~~ > | <> > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ declared here > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4618:15: error: > ‘nlohmann::json_abi_v3_11_3::basic_json<ObjectType, ArrayType, StringType, > BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, > AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>::value_type& > nlohmann::json_abi_v3_11_3::basic_json<ObjectType, ArrayType, StringType, > BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, > AllocatorType, JSONSerializer, BinaryType, > CustomBaseClass>::operator[](...)’ must not have variable number of > arguments > 4618 | reference operator[](const json_pointer& ptr) > | ^~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4625:32: error: reference > to ‘json_pointer’ is ambiguous > 4625 | reference operator[](const > ::nlohmann::json_pointer<BasicJsonType>& ptr) > | ^~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4625:56: error: expected > ‘,’ or ‘...’ before ‘<’ token > 4625 | reference operator[](const > ::nlohmann::json_pointer<BasicJsonType>& ptr) > | ^ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4632:32: error: missing > template argument list after ‘nlohmann::json_abi_v3_11_3::json_pointer’; > template placeholder not permitted in parameter > 4632 | const_reference operator[](const json_pointer& ptr) const > | ^~~~~ > | <> > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ declared here > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4632:21: error: ‘const > nlohmann::json_abi_v3_11_3::basic_json<ObjectType, ArrayType, StringType, > BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, > AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>::value_type& > nlohmann::json_abi_v3_11_3::basic_json<ObjectType, ArrayType, StringType, > BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, > AllocatorType, JSONSerializer, BinaryType, > CustomBaseClass>::operator[](...) const’ must not have variable number of > arguments > 4632 | const_reference operator[](const json_pointer& ptr) const > | ^~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4639:38: error: reference > to ‘json_pointer’ is ambiguous > 4639 | const_reference operator[](const > ::nlohmann::json_pointer<BasicJsonType>& ptr) const > | ^~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4639:62: error: expected > ‘,’ or ‘...’ before ‘<’ token > 4639 | const_reference operator[](const > ::nlohmann::json_pointer<BasicJsonType>& ptr) const > | ^ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4646:18: error: missing > template argument list after ‘nlohmann::json_abi_v3_11_3::json_pointer’; > template placeholder not permitted in parameter > 4646 | reference at(const json_pointer& ptr) > | ^~~~~ > | <> > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ declared here > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4653:24: error: reference > to ‘json_pointer’ is ambiguous > 4653 | reference at(const ::nlohmann::json_pointer<BasicJsonType>& > ptr) > | ^~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4653:48: error: expected > ‘,’ or ‘...’ before ‘<’ token > 4653 | reference at(const ::nlohmann::json_pointer<BasicJsonType>& > ptr) > | ^ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4660:24: error: missing > template argument list after ‘nlohmann::json_abi_v3_11_3::json_pointer’; > template placeholder not permitted in parameter > 4660 | const_reference at(const json_pointer& ptr) const > | ^~~~~ > | <> > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ declared here > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4667:30: error: reference > to ‘json_pointer’ is ambiguous > 4667 | const_reference at(const > ::nlohmann::json_pointer<BasicJsonType>& ptr) const > | ^~ > /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7: note: > candidates are: ‘template<class RefStringType> class > nlohmann::json_abi_v3_11_3::json_pointer’ > 35 | class json_pointer > | ^~~~~~~~~~~~ > /usr/local/include/pdal/JsonFwd.hpp:45:7: note: > ‘template<class BasicJsonType> class nlohmann::json_pointer’ > 45 | class json_pointer; > | ^~~~~~~~~~~~ > /usr/local/src/QGIS/external/nlohmann/json.hpp:4667:54: error: expected > ‘,’ or ‘...’ before ‘<’ token > 4667 | const_reference at(const > ::nlohmann::json_pointer<BasicJsonType>& ptr) const > | ^ > > _______________________________________________ > QGIS-Developer mailing list > QGIS-Developer@lists.osgeo.org > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer >
_______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer