Skip to content

Building master (63a8d7b) fails on "call of overloaded (... QByteArray ...) is ambiguous" #63560

Description

@dhdeangelis

What is the bug or the crash?

Building master (63a8d7b) fails with error log below.

This is happening in an openSUSE Tumbleweed machine where Qt has just been upgraded to 6.10.0. Possibly not a QGIS problem per se but something to consider in relation to Qt 6.10?

In file included from /usr/local/src/QGIS/src/core/vectortile/qgsvectortilemvtencoder.h:23,
                 from /usr/local/src/QGIS/src/core/vectortile/qgsvectortilemvtencoder.cpp:16:
/usr/local/src/QGIS/build/src/core/vector_tile.pb.h: In instantiation of ‘void vector_tile::Tile_Layer::set_name(Arg_&&, Args_ ...) [with Arg_ = QByteArray; Args_ = {}]’:
/usr/local/src/QGIS/src/core/vectortile/qgsvectortilemvtencoder.cpp:206:22:   required from here
  206 |   tileLayer->set_name( layerName.toUtf8() );
      |   ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/QGIS/build/src/core/vector_tile.pb.h:2120:19: error: call of overloaded ‘Set(QByteArray, google::protobuf::Arena*)’ is ambiguous
 2120 |   _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
      |   ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/QGIS/build/src/core/vector_tile.pb.h:2120:19: note: there are 6 candidates
In file included from /usr/local/src/QGIS/build/src/core/vector_tile.pb.h:22:
/usr/include/google/protobuf/arenastring.h:294:8: note: candidate 1: ‘void google::protobuf::internal::ArenaStringPtr::Set(absl::lts_20250814::string_view, google::protobuf::Arena*)’
  294 |   void Set(absl::string_view value, Arena* arena);
      |        ^~~
/usr/include/google/protobuf/arenastring.h:464:13: note: candidate 2: ‘void google::protobuf::internal::ArenaStringPtr::Set(const char*, google::protobuf::Arena*)’
  464 | inline void ArenaStringPtr::Set(const char* s, Arena* arena) {
      |             ^~~~~~~~~~~~~~
In file included from /usr/local/src/QGIS/build/src/core/vector_tile.pb.h:24:
/usr/include/google/protobuf/generated_message_util.h: In instantiation of ‘void google::protobuf::internal::AddToRepeatedPtrField(google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char> >&, Arg&&, Args ...) [with Arg = QByteArray; Args = {}]’:
/usr/local/src/QGIS/build/src/core/vector_tile.pb.h:2257:54:   required from ‘void vector_tile::Tile_Layer::add_keys(Arg_&&, Args_ ...) [with Arg_ = QByteArray; Args_ = {}]’
 2257 |   ::google::protobuf::internal::AddToRepeatedPtrField(*_internal_mutable_keys(),
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
 2258 |                                ::std::forward<Arg_>(value),
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2259 |                                args... );
      |                                ~~~~~~~~~              
/usr/local/src/QGIS/src/core/vectortile/qgsvectortilemvtencoder.cpp:213:24:   required from here
  213 |     tileLayer->add_keys( fields[i].name().toUtf8() );
      |     ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/google/protobuf/generated_message_util.h:374:17: error: call of overloaded ‘AssignToString(std::__cxx11::basic_string<char>&, QByteArray)’ is ambiguous
  374 |   AssignToString(*dest.Add(), std::forward<Arg>(value), args...);
      |   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/google/protobuf/generated_message_util.h:374:17: note: there are 6 candidates
/usr/include/google/protobuf/generated_message_util.h:351:13: note: candidate 1: ‘void google::protobuf::internal::AssignToString(std::string&, const char*, BytesTag)’
  351 | inline void AssignToString(std::string& dest, const char* value,
      |             ^~~~~~~~~~~~~~
/usr/include/google/protobuf/generated_message_util.h:363:13: note: candidate 2: ‘void google::protobuf::internal::AssignToString(std::string&, absl::lts_20250814::string_view, BytesTag)’
  363 | inline void AssignToString(std::string& dest, absl::string_view value,
      |             ^~~~~~~~~~~~~~

Steps to reproduce the issue

  1. get latest master branch
  2. build on a machine with Qt 6.10, protobuf 32.0.2
  3. see error

Versions

Not possible to post this at the moment. Possibly relevant according to error log:

Qt 6.10
protobuf 32.0.2
abseil 20250814.1

Supported QGIS version

  • I'm running a supported QGIS version according to the roadmap.

New profile

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugEither a bug report, or a bug fix. Let's hope for the latter!Build/InstallRelated to compiling or installing QGIS

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions