<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<font size="2" face="DejaVu Sans Mono">Hi<br>
<br>
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.<br>
<br>
</font><font size="2" face="DejaVu Sans Mono">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.</font><br>
<font size="2" face="DejaVu Sans Mono"><br>
</font><font size="2" face="DejaVu Sans Mono">I compiled QGIS master
as late as 6 april without problems in a previous openSUSE
install. </font><font size="2" face="DejaVu Sans Mono">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.<br>
<br>
Thanks in advance<br>
<br>
Hernán<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
[ 12%] Built target staged-plugins-on-build<br>
In file included from
/usr/local/src/QGIS/external/nlohmann/detail/value_t.hpp:16,<br>
from
/usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:20,<br>
from
/usr/local/src/QGIS/external/nlohmann/detail/conversions/from_json.hpp:23,<br>
from
/usr/local/src/QGIS/external/nlohmann/adl_serializer.hpp:14,<br>
from
/usr/local/src/QGIS/external/nlohmann/json.hpp:34,<br>
from
/usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:26:<br>
/usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63:
error: wrong number of template arguments (11, should be at least
0)<br>
257 | AllocatorType, JSONSerializer, BinaryType,
CustomBaseClass><br>
| ^<br>
/usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:22:
note: in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’<br>
53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> :
std::true_type {};<br>
| ^~~~~~~~~~~~~~~~~~~~~~~<br>
In file included from /usr/local/include/pdal/PDALUtils.hpp:39,<br>
from /usr/local/include/pdal/PointRef.hpp:37,<br>
from /usr/local/include/pdal/Geometry.hpp:37,<br>
from
/usr/local/src/QGIS/external/pdal_wrench/vpc.hpp:18,<br>
from
/usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:19:<br>
/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’<br>
40 | class basic_json;<br>
| ^~~~~~~~~~<br>
In file included from
/usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:25:<br>
/usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:45:
error: template argument 1 is invalid<br>
53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> :
std::true_type {};<br>
| ^<br>
/usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63:
error: wrong number of template arguments (11, should be at least
0)<br>
257 | AllocatorType, JSONSerializer, BinaryType,
CustomBaseClass><br>
| ^<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:28:
note: in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’<br>
51 | struct string_t_helper<NLOHMANN_BASIC_JSON_TPL><br>
| ^~~~~~~~~~~~~~~~~~~~~~~<br>
/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’<br>
40 | class basic_json;<br>
| ^~~~~~~~~~<br>
In file included from
/usr/local/src/QGIS/external/nlohmann/json.hpp:50:<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:51:
error: template argument 1 is invalid<br>
51 | struct string_t_helper<NLOHMANN_BASIC_JSON_TPL><br>
| ^<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:104:30: error:
reference to ‘json_pointer’ is ambiguous<br>
104 | friend class ::nlohmann::json_pointer;<br>
| ^~~~~~~~~~~~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:166:26: error:
reference to ‘json_pointer’ is ambiguous<br>
166 | using json_pointer =
::nlohmann::json_pointer<StringType>;<br>
| ^~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/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<br>
2327 | ValueType value(const json_pointer& ptr, const
ValueType& default_value) const<br>
| ^~~~~<br>
| <><br>
/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<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/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<br>
2352 | ReturnType value(const json_pointer& ptr,
ValueType && default_value) const<br>
| ^~~~~<br>
| <><br>
/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<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:2376:27: error:
reference to ‘json_pointer’ is ambiguous<br>
2376 | ValueType value(const
::nlohmann::json_pointer<BasicJsonType>& ptr, const
ValueType& default_value) const<br>
| ^~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:2376:51: error:
expected ‘,’ or ‘...’ before ‘<’ token<br>
2376 | ValueType value(const
::nlohmann::json_pointer<BasicJsonType>& ptr, const
ValueType& default_value) const<br>
| ^<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:2387:28: error:
reference to ‘json_pointer’ is ambiguous<br>
2387 | ReturnType value(const
::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType
&& default_value) const<br>
| ^~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:2387:52: error:
expected ‘,’ or ‘...’ before ‘<’ token<br>
2387 | ReturnType value(const
::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType
&& default_value) const<br>
| ^<br>
/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<br>
2745 | bool contains(const json_pointer& ptr) const<br>
| ^~~~~<br>
| <><br>
/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<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:2752:46: error:
reference to ‘json_pointer’ is ambiguous<br>
2752 | bool contains(const typename
::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
| ^~~~~~~~~~~~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:2752:58: error:
expected ‘,’ or ‘...’ before ‘<’ token<br>
2752 | bool contains(const typename
::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
| ^<br>
/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<br>
4618 | reference operator[](const json_pointer& ptr)<br>
| ^~~~~<br>
| <><br>
/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<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/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<br>
4618 | reference operator[](const json_pointer& ptr)<br>
| ^~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4625:32: error:
reference to ‘json_pointer’ is ambiguous<br>
4625 | reference operator[](const
::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
| ^~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4625:56: error:
expected ‘,’ or ‘...’ before ‘<’ token<br>
4625 | reference operator[](const
::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
| ^<br>
/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<br>
4632 | const_reference operator[](const json_pointer&
ptr) const<br>
| ^~~~~<br>
| <><br>
/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<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/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<br>
4632 | const_reference operator[](const json_pointer&
ptr) const<br>
| ^~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4639:38: error:
reference to ‘json_pointer’ is ambiguous<br>
4639 | const_reference operator[](const
::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
| ^~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4639:62: error:
expected ‘,’ or ‘...’ before ‘<’ token<br>
4639 | const_reference operator[](const
::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
| ^<br>
/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<br>
4646 | reference at(const json_pointer& ptr)<br>
| ^~~~~<br>
| <><br>
/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<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4653:24: error:
reference to ‘json_pointer’ is ambiguous<br>
4653 | reference at(const
::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
| ^~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4653:48: error:
expected ‘,’ or ‘...’ before ‘<’ token<br>
4653 | reference at(const
::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
| ^<br>
/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<br>
4660 | const_reference at(const json_pointer& ptr) const<br>
| ^~~~~<br>
| <><br>
/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<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4667:30: error:
reference to ‘json_pointer’ is ambiguous<br>
4667 | const_reference at(const
::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
| ^~<br>
/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’<br>
35 | class json_pointer<br>
| ^~~~~~~~~~~~<br>
/usr/local/include/pdal/JsonFwd.hpp:45:7: note:
‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
45 | class json_pointer;<br>
| ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/json.hpp:4667:54: error:
expected ‘,’ or ‘...’ before ‘<’ token<br>
4667 | const_reference at(const
::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
| ^<br>
<br>
</font>
</body>
</html>