Ошибка в скомпилированных с помощью protoc файлах с++
Установил protobuf из исходников, все по инструкции, ошибки в процессе установки не разложено. Написал тестовый протофайл
syntax = "proto3";
message Address{
string street = 1;
uint32 building = 2;
}
message Person{
string name = 1;
int32 age = 2;
repeated string phone_numbers = 3;
}
Написал cmake
cmake_minimum_required(VERSION 3.17)
project(protobuf_test3)
set(CMAKE_CXX_STANDARD 17)
find_package(Protobuf REQUIRED)
include_directories(${Protobuf_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS person.proto)
add_executable(protobuf_test3 main.cpp ${PROTO_SRCS} ${PROTO_HDRS})
Запустил программу, protoc скомпилировал файлы, протобуфа в h и сс. Но, компилятор выдал ошибки в скомпилированном прото файле, вот текст этих ошибок
/home/anton/dev/protobuf_test3/cmake-build-debug/person.pb.h:417:101: error: no matching function for call to ‘google::protobuf::internal::ArenaStringPtr::ClearToEmpty(const string*, google::protobuf::Arena*)’
417 | street_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
/home/anton/dev/protobuf_test3/cmake-build-debug/person.pb.h:460:103: error: no matching function for call to ‘google::protobuf::internal::ArenaStringPtr::Mutable(const string*, google::protobuf::Arena*)’
460 | return street_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
/home/anton/dev/protobuf_test3/cmake-build-debug/person.pb.h:546:101: error: no matching function for call to ‘google::protobuf::internal::ArenaStringPtr::Mutable(const string*, google::protobuf::Arena*)’
546 | return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
e/anton/dev/protobuf_test3/cmake-build-debug/person.pb.h:417:101: error: no matching function for call to ‘google::protobuf::internal::ArenaStringPtr::ClearToEmpty(const string*, google::protobuf::Arena*)’
417 | street_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
| ^
/home/anton/dev/protobuf_test3/cmake-build-debug/person.pb.h:460:103: error: no matching function for call to ‘google::protobuf::internal::ArenaStringPtr::Mutable(const string*, google::protobuf::Arena*)’
460 | return street_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
/home/anton/dev/protobuf_test3/cmake-build-debug/person.pb.h:503:99: error: no matching function for call to ‘google::protobuf::internal::ArenaStringPtr::ClearToEmpty(const string*, google::protobuf::Arena*)’
503 | name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
| ^
И ошибка cmake
make[3]: *** [CMakeFiles/protobuf_test3.dir/build.make:104: CMakeFiles/protobuf_test3.dir/person.pb.cc.o] Ошибка 1
make[2]: *** [CMakeFiles/Makefile2:96: CMakeFiles/protobuf_test3.dir/all] Ошибка 2
make[1]: *** [CMakeFiles/Makefile2:103: CMakeFiles/protobuf_test3.dir/rule] Ошибка 2
make: *** [Makefile:138: protobuf_test3] Ошибка 2