mapbox / mapnik-vector-tile

Mapnik implemention of Mapbox Vector Tile specification
BSD 3-Clause "New" or "Revised" License
552 stars 117 forks source link

vector_tile.pb.h:12:2: error: #error This file was generated by a newer version of protoc #277

Closed am2222 closed 6 years ago

am2222 commented 6 years ago

Hi, While I tried to make I faced this error

`In file included from Release/obj/gen/vector_tile.pb.cc:5:0: Release/obj/gen/vector_tile.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is

error This file was generated by a newer version of protoc which is`

I tried both protobuf 3.3.0 and protobuf 3.4.1 but there was not any change, where am I doing wrong?

flippmoke commented 6 years ago

@am2222 what OS are you using, does running make simply not work. In MVT - only for the tests do we use protobuf library directly.

am2222 commented 6 years ago

@flippmoke Hi, I am on linux and I tried to make It starts to download from mason firstly it downloaded 3.3.0 and raised this error later I again edited install_mason.sh and changed ptotobuf to 3.4.1 but error exists.

flippmoke commented 6 years ago

@am2222 could you provide the entire log after you run make, what version of Linux? I will attempt to replicate on a docker image if I can.

am2222 commented 6 years ago

@flippmoke Here it is. I am using ubunto 17.0.4

m@ubuntu:~/3.0.16/mapnik-vector-tile-master$ make
./install_mason.sh
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/protozero/1.5.2
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/protozero/1.5.2
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/protozero/1.5.2
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/geometry/0.9.2
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/geometry/0.9.2
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/geometry/0.9.2
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/wagyu/0.4.3
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/wagyu/0.4.3
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/wagyu/0.4.3
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/protobuf/3.3.0
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/protobuf/3.3.0
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/protobuf/3.3.0
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/jpeg_turbo/1.5.1
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/jpeg_turbo/1.5.1
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/jpeg_turbo/1.5.1
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libpng/1.6.28
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libpng/1.6.28
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libpng/1.6.28
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libtiff/4.0.7
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libtiff/4.0.7
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libtiff/4.0.7
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/icu/57.1
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/icu/57.1
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/icu/57.1
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/proj/4.9.3
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/proj/4.9.3
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/proj/4.9.3
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/pixman/0.34.0
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/pixman/0.34.0
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/pixman/0.34.0
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/cairo/1.14.8
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/cairo/1.14.8
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/cairo/1.14.8
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/webp/0.6.0
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/webp/0.6.0
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/webp/0.6.0
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libgdal/2.1.3
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libgdal/2.1.3
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/libgdal/2.1.3
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/boost/1.63.0
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/boost/1.63.0
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/headers/boost/1.63.0
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libsystem/1.63.0
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libsystem/1.63.0
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libsystem/1.63.0
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libfilesystem/1.63.0
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libfilesystem/1.63.0
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libfilesystem/1.63.0
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libregex_icu57/1.63.0
basename: missing operand
Try 'basename --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libregex_icu57/1.63.0
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/boost_libregex_icu57/1.63.0
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/freetype/2.7.1
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/freetype/2.7.1
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/freetype/2.7.1
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/harfbuzz/1.4.2-ft
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/harfbuzz/1.4.2-ft
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/harfbuzz/1.4.2-ft
* Already installed at /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/mapnik/f02a25901
* Linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/mapnik/f02a25901
* Links will be inside /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/.link/
* Using bash fallback for symlinking (install lndir for faster symlinking)
* Done linking /home/m/3.0.16/mapnik-vector-tile-master/mason_packages/linux-x86_64/mapnik/f02a25901
CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 " make release_base
make[1]: Entering directory '/home/m/3.0.16/mapnik-vector-tile-master'
CXXFLAGS="-isystem `pwd`/mason_packages/.link/include -D_GLIBCXX_USE_CXX11_ABI=0 " \
 LDFLAGS="-L`pwd`/mason_packages/.link/lib " \
 PATH="`pwd`/mason_packages/.link/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" \
 BUILDTYPE=Release make build/Makefile
make[2]: Entering directory '/home/m/3.0.16/mapnik-vector-tile-master'
Looking for mapnik-config on your PATH...
mapnik-config -v
3.0.16
deps/gyp/gyp gyp/build.gyp -Denable_sse=true --depth=. -DMAPNIK_PLUGINDIR=\"/usr/local/lib/mapnik/input\" -Goutput_dir=. --generator-output=./build -f make
make -C build/ V=
make[3]: Entering directory '/home/m/3.0.16/mapnik-vector-tile-master/build'
  TOUCH gyp_build_gyp_make_vector_tile_target_run_protoc.intermediate
  ACTION gyp_build_gyp_make_vector_tile_target_run_protoc gyp_build_gyp_make_vector_tile_target_run_protoc.intermediate
  CXX(target) Release/obj.target/vector_tile/gen/vector_tile.pb.o
In file included from Release/obj/gen/vector_tile.pb.cc:5:0:
Release/obj/gen/vector_tile.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
  ^~~~~
Release/obj/gen/vector_tile.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
 #error incompatible with your Protocol Buffer headers.  Please update
  ^~~~~
Release/obj/gen/vector_tile.pb.h:14:2: error: #error your headers.
 #error your headers.
  ^~~~~
In file included from Release/obj/gen/vector_tile.pb.cc:5:0:
Release/obj/gen/vector_tile.pb.h: In member function ‘void vector_tile::Tile_Layer::add_keys(std::string&&)’:
Release/obj/gen/vector_tile.pb.h:1231:29: error: no matching function for call to ‘google::protobuf::RepeatedPtrField<std::basic_string<char> >::Add(std::remove_reference<std::basic_string<char>&>::type)’
   keys_.Add(std::move(value));
                             ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:1847:17: note: candidate: Element* google::protobuf::RepeatedPtrField<Element>::Add() [with Element = std::basic_string<char>]
 inline Element* RepeatedPtrField<Element>::Add() {
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:1847:17: note:   candidate expects 0 arguments, 1 provided
Release/obj/gen/vector_tile.pb.cc: In member function ‘virtual bool vector_tile::Tile_Value::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)’:
Release/obj/gen/vector_tile.pb.cc:203:37: error: no matching function for call to ‘NewPermanentCallback(google::protobuf::internal::InternalMetadataWithArenaLite*, std::basic_string<char>* (google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>::*)())’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note: candidate: google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)())
 inline Closure* NewPermanentCallback(void (*function)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note:   candidate expects 1 argument, 2 provided
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note: candidate: template<class Class> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)())
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note: candidate: template<class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(void (*function)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘void(Arg1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note: candidate: template<class Class, class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note: candidate: template<class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(void (*function)(Arg1, Arg2),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘void(Arg1, Arg2)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note: candidate: template<class Class, class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note: candidate: template<class R> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)())
 inline ResultCallback<R>* NewPermanentCallback(R (*function)()) {
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘R()’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note: candidate: template<class R, class P1> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)(P1), P1)
 inline ResultCallback<R>* NewPermanentCallback(
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘R(P1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note: candidate: template<class R, class A1> google::protobuf::ResultCallback1<R, Arg1>* google::protobuf::NewPermanentCallback(R (*)(A1))
 inline ResultCallback1<R, A1>* NewPermanentCallback(R (*function)(A1)) {
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘R(A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note: candidate: template<class R, class P1, class A1> google::protobuf::ResultCallback1<R, A1>* google::protobuf::NewPermanentCallback(R (*)(P1, A1), P1)
 inline ResultCallback1<R, A1>* NewPermanentCallback(
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   mismatched types ‘R(P1, A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note: candidate: template<class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2> google::protobuf::ResultCallback2<R, A1, A2>* google::protobuf::NewPermanentCallback(T*, R (T::*)(P1, P2, P3, P4, P5, A1, A2), typename google::protobuf::internal::InternalConstRef<P1>::type, typename google::protobuf::internal::InternalConstRef<P2>::type, typename google::protobuf::internal::InternalConstRef<P3>::type, typename google::protobuf::internal::InternalConstRef<P4>::type, typename google::protobuf::internal::InternalConstRef<P5>::type)
 inline ResultCallback2<R, A1, A2>* NewPermanentCallback(
                                    ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:203:37: note:   deduced conflicting types for parameter ‘T’ (‘google::protobuf::internal::InternalMetadataWithArenaLite’ and ‘google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>’)
               mutable_unknown_fields));
                                     ^
Release/obj/gen/vector_tile.pb.cc: In member function ‘virtual bool vector_tile::Tile_Feature::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)’:
Release/obj/gen/vector_tile.pb.cc:830:37: error: no matching function for call to ‘NewPermanentCallback(google::protobuf::internal::InternalMetadataWithArenaLite*, std::basic_string<char>* (google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>::*)())’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note: candidate: google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)())
 inline Closure* NewPermanentCallback(void (*function)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note:   candidate expects 1 argument, 2 provided
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note: candidate: template<class Class> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)())
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note: candidate: template<class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(void (*function)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘void(Arg1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note: candidate: template<class Class, class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note: candidate: template<class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(void (*function)(Arg1, Arg2),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘void(Arg1, Arg2)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note: candidate: template<class Class, class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note: candidate: template<class R> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)())
 inline ResultCallback<R>* NewPermanentCallback(R (*function)()) {
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘R()’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note: candidate: template<class R, class P1> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)(P1), P1)
 inline ResultCallback<R>* NewPermanentCallback(
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘R(P1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note: candidate: template<class R, class A1> google::protobuf::ResultCallback1<R, Arg1>* google::protobuf::NewPermanentCallback(R (*)(A1))
 inline ResultCallback1<R, A1>* NewPermanentCallback(R (*function)(A1)) {
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘R(A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note: candidate: template<class R, class P1, class A1> google::protobuf::ResultCallback1<R, A1>* google::protobuf::NewPermanentCallback(R (*)(P1, A1), P1)
 inline ResultCallback1<R, A1>* NewPermanentCallback(
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   mismatched types ‘R(P1, A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note: candidate: template<class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2> google::protobuf::ResultCallback2<R, A1, A2>* google::protobuf::NewPermanentCallback(T*, R (T::*)(P1, P2, P3, P4, P5, A1, A2), typename google::protobuf::internal::InternalConstRef<P1>::type, typename google::protobuf::internal::InternalConstRef<P2>::type, typename google::protobuf::internal::InternalConstRef<P3>::type, typename google::protobuf::internal::InternalConstRef<P4>::type, typename google::protobuf::internal::InternalConstRef<P5>::type)
 inline ResultCallback2<R, A1, A2>* NewPermanentCallback(
                                    ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:830:37: note:   deduced conflicting types for parameter ‘T’ (‘google::protobuf::internal::InternalMetadataWithArenaLite’ and ‘google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>’)
               mutable_unknown_fields));
                                     ^
Release/obj/gen/vector_tile.pb.cc: In member function ‘void vector_tile::Tile_Feature::InternalSwap(vector_tile::Tile_Feature*)’:
Release/obj/gen/vector_tile.pb.cc:1103:35: error: ‘void google::protobuf::RepeatedField<Element>::InternalSwap(google::protobuf::RepeatedField<Element>*) [with Element = unsigned int]’ is private within this context
   tags_.InternalSwap(&other->tags_);
                                   ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:1192:13: note: declared private here
 inline void RepeatedField<Element>::InternalSwap(RepeatedField* other) {
             ^~~~~~~~~~~~~~~~~~~~~~
Release/obj/gen/vector_tile.pb.cc:1104:43: error: ‘void google::protobuf::RepeatedField<Element>::InternalSwap(google::protobuf::RepeatedField<Element>*) [with Element = unsigned int]’ is private within this context
   geometry_.InternalSwap(&other->geometry_);
                                           ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:1192:13: note: declared private here
 inline void RepeatedField<Element>::InternalSwap(RepeatedField* other) {
             ^~~~~~~~~~~~~~~~~~~~~~
Release/obj/gen/vector_tile.pb.cc: In member function ‘virtual bool vector_tile::Tile_Layer::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)’:
Release/obj/gen/vector_tile.pb.cc:1392:37: error: no matching function for call to ‘NewPermanentCallback(google::protobuf::internal::InternalMetadataWithArenaLite*, std::basic_string<char>* (google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>::*)())’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note: candidate: google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)())
 inline Closure* NewPermanentCallback(void (*function)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note:   candidate expects 1 argument, 2 provided
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note: candidate: template<class Class> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)())
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note: candidate: template<class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(void (*function)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘void(Arg1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note: candidate: template<class Class, class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note: candidate: template<class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(void (*function)(Arg1, Arg2),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘void(Arg1, Arg2)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note: candidate: template<class Class, class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note: candidate: template<class R> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)())
 inline ResultCallback<R>* NewPermanentCallback(R (*function)()) {
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘R()’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note: candidate: template<class R, class P1> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)(P1), P1)
 inline ResultCallback<R>* NewPermanentCallback(
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘R(P1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note: candidate: template<class R, class A1> google::protobuf::ResultCallback1<R, Arg1>* google::protobuf::NewPermanentCallback(R (*)(A1))
 inline ResultCallback1<R, A1>* NewPermanentCallback(R (*function)(A1)) {
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘R(A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note: candidate: template<class R, class P1, class A1> google::protobuf::ResultCallback1<R, A1>* google::protobuf::NewPermanentCallback(R (*)(P1, A1), P1)
 inline ResultCallback1<R, A1>* NewPermanentCallback(
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   mismatched types ‘R(P1, A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note: candidate: template<class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2> google::protobuf::ResultCallback2<R, A1, A2>* google::protobuf::NewPermanentCallback(T*, R (T::*)(P1, P2, P3, P4, P5, A1, A2), typename google::protobuf::internal::InternalConstRef<P1>::type, typename google::protobuf::internal::InternalConstRef<P2>::type, typename google::protobuf::internal::InternalConstRef<P3>::type, typename google::protobuf::internal::InternalConstRef<P4>::type, typename google::protobuf::internal::InternalConstRef<P5>::type)
 inline ResultCallback2<R, A1, A2>* NewPermanentCallback(
                                    ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:1392:37: note:   deduced conflicting types for parameter ‘T’ (‘google::protobuf::internal::InternalMetadataWithArenaLite’ and ‘google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>’)
               mutable_unknown_fields));
                                     ^
Release/obj/gen/vector_tile.pb.cc: In member function ‘void vector_tile::Tile_Layer::InternalSwap(vector_tile::Tile_Layer*)’:
Release/obj/gen/vector_tile.pb.cc:1694:43: error: ‘void google::protobuf::internal::RepeatedPtrFieldBase::InternalSwap(google::protobuf::internal::RepeatedPtrFieldBase*)’ is protected within this context
   features_.InternalSwap(&other->features_);
                                           ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:2247:6: note: declared protected here
 void RepeatedPtrFieldBase::InternalSwap(RepeatedPtrFieldBase* other) {
      ^~~~~~~~~~~~~~~~~~~~
Release/obj/gen/vector_tile.pb.cc:1695:35: error: ‘void google::protobuf::internal::RepeatedPtrFieldBase::InternalSwap(google::protobuf::internal::RepeatedPtrFieldBase*)’ is protected within this context
   keys_.InternalSwap(&other->keys_);
                                   ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:2247:6: note: declared protected here
 void RepeatedPtrFieldBase::InternalSwap(RepeatedPtrFieldBase* other) {
      ^~~~~~~~~~~~~~~~~~~~
Release/obj/gen/vector_tile.pb.cc:1696:39: error: ‘void google::protobuf::internal::RepeatedPtrFieldBase::InternalSwap(google::protobuf::internal::RepeatedPtrFieldBase*)’ is protected within this context
   values_.InternalSwap(&other->values_);
                                       ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:2247:6: note: declared protected here
 void RepeatedPtrFieldBase::InternalSwap(RepeatedPtrFieldBase* other) {
      ^~~~~~~~~~~~~~~~~~~~
Release/obj/gen/vector_tile.pb.cc: In member function ‘virtual bool vector_tile::Tile::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)’:
Release/obj/gen/vector_tile.pb.cc:2025:37: error: no matching function for call to ‘NewPermanentCallback(google::protobuf::internal::InternalMetadataWithArenaLite*, std::basic_string<char>* (google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>::*)())’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note: candidate: google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)())
 inline Closure* NewPermanentCallback(void (*function)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:392:17: note:   candidate expects 1 argument, 2 provided
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note: candidate: template<class Class> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)())
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)()) {
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:404:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note: candidate: template<class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(void (*function)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:417:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘void(Arg1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note: candidate: template<class Class, class Arg1> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1), Arg1)
 inline Closure* NewPermanentCallback(Class* object, void (Class::*method)(Arg1),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:431:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note: candidate: template<class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(void (*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(void (*function)(Arg1, Arg2),
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:446:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘void(Arg1, Arg2)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note: candidate: template<class Class, class Arg1, class Arg2> google::protobuf::Closure* google::protobuf::NewPermanentCallback(Class*, void (Class::*)(Arg1, Arg2), Arg1, Arg2)
 inline Closure* NewPermanentCallback(
                 ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:462:17: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘void’ and ‘std::basic_string<char>*’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note: candidate: template<class R> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)())
 inline ResultCallback<R>* NewPermanentCallback(R (*function)()) {
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:477:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘R()’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note: candidate: template<class R, class P1> google::protobuf::ResultCallback<R>* google::protobuf::NewPermanentCallback(R (*)(P1), P1)
 inline ResultCallback<R>* NewPermanentCallback(
                           ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:490:27: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘R(P1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note: candidate: template<class R, class A1> google::protobuf::ResultCallback1<R, Arg1>* google::protobuf::NewPermanentCallback(R (*)(A1))
 inline ResultCallback1<R, A1>* NewPermanentCallback(R (*function)(A1)) {
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘R(A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note: candidate: template<class R, class P1, class A1> google::protobuf::ResultCallback1<R, A1>* google::protobuf::NewPermanentCallback(R (*)(P1, A1), P1)
 inline ResultCallback1<R, A1>* NewPermanentCallback(
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘R(P1, A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note: candidate: template<class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2> google::protobuf::ResultCallback2<R, A1, A2>* google::protobuf::NewPermanentCallback(T*, R (T::*)(P1, P2, P3, P4, P5, A1, A2), typename google::protobuf::internal::InternalConstRef<P1>::type, typename google::protobuf::internal::InternalConstRef<P2>::type, typename google::protobuf::internal::InternalConstRef<P3>::type, typename google::protobuf::internal::InternalConstRef<P4>::type, typename google::protobuf::internal::InternalConstRef<P5>::type)
 inline ResultCallback2<R, A1, A2>* NewPermanentCallback(
                                    ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   deduced conflicting types for parameter ‘T’ (‘google::protobuf::internal::InternalMetadataWithArenaLite’ and ‘google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>’)
               mutable_unknown_fields));
                                     ^
Release/obj/gen/vector_tile.pb.cc: In member function ‘void vector_tile::Tile::InternalSwap(vector_tile::Tile*)’:
Release/obj/gen/vector_tile.pb.cc:2157:39: error: ‘void google::protobuf::internal::RepeatedPtrFieldBase::InternalSwap(google::protobuf::internal::RepeatedPtrFieldBase*)’ is protected within this context
   layers_.InternalSwap(&other->layers_);
                                       ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:2247:6: note: declared protected here
 void RepeatedPtrFieldBase::InternalSwap(RepeatedPtrFieldBase* other) {
      ^~~~~~~~~~~~~~~~~~~~
gyp/vector_tile.target.mk:143: recipe for target 'Release/obj.target/vector_tile/gen/vector_tile.pb.o' failed
make[3]: *** [Release/obj.target/vector_tile/gen/vector_tile.pb.o] Error 1
rm gyp_build_gyp_make_vector_tile_target_run_protoc.intermediate
make[3]: Leaving directory '/home/m/3.0.16/mapnik-vector-tile-master/build'
Makefile:21: recipe for target 'build/Makefile' failed
make[2]: *** [build/Makefile] Error 2
make[2]: Leaving directory '/home/m/3.0.16/mapnik-vector-tile-master'
Makefile:34: recipe for target 'release_base' failed
make[1]: *** [release_base] Error 2
make[1]: Leaving directory '/home/m/3.0.16/mapnik-vector-tile-master'
Makefile:25: recipe for target 'release' failed
make: *** [release] Error 2
m@ubuntu:~/3.0.16/mapnik-vector-tile-master$ 
am2222 commented 6 years ago

@flippmoke Here it is. I am using ubunto 17.0.4


In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note: candidate: template<class R, class A1> google::protobuf::ResultCallback1<R, Arg1>* google::protobuf::NewPermanentCallback(R (*)(A1))
 inline ResultCallback1<R, A1>* NewPermanentCallback(R (*function)(A1)) {
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:504:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘R(A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note: candidate: template<class R, class P1, class A1> google::protobuf::ResultCallback1<R, A1>* google::protobuf::NewPermanentCallback(R (*)(P1, A1), P1)
 inline ResultCallback1<R, A1>* NewPermanentCallback(
                                ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:517:32: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   mismatched types ‘R(P1, A1)’ and ‘google::protobuf::internal::InternalMetadataWithArenaLite’
               mutable_unknown_fields));
                                     ^
In file included from /home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/common.h:48:0,
                 from Release/obj/gen/vector_tile.pb.h:9,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note: candidate: template<class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2> google::protobuf::ResultCallback2<R, A1, A2>* google::protobuf::NewPermanentCallback(T*, R (T::*)(P1, P2, P3, P4, P5, A1, A2), typename google::protobuf::internal::InternalConstRef<P1>::type, typename google::protobuf::internal::InternalConstRef<P2>::type, typename google::protobuf::internal::InternalConstRef<P3>::type, typename google::protobuf::internal::InternalConstRef<P4>::type, typename google::protobuf::internal::InternalConstRef<P5>::type)
 inline ResultCallback2<R, A1, A2>* NewPermanentCallback(
                                    ^~~~~~~~~~~~~~~~~~~~
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/stubs/callback.h:526:36: note:   template argument deduction/substitution failed:
Release/obj/gen/vector_tile.pb.cc:2025:37: note:   deduced conflicting types for parameter ‘T’ (‘google::protobuf::internal::InternalMetadataWithArenaLite’ and ‘google::protobuf::internal::InternalMetadataWithArenaBase<std::basic_string<char>, google::protobuf::internal::InternalMetadataWithArenaLite>’)
               mutable_unknown_fields));
                                     ^
Release/obj/gen/vector_tile.pb.cc: In member function ‘void vector_tile::Tile::InternalSwap(vector_tile::Tile*)’:
Release/obj/gen/vector_tile.pb.cc:2157:39: error: ‘void google::protobuf::internal::RepeatedPtrFieldBase::InternalSwap(google::protobuf::internal::RepeatedPtrFieldBase*)’ is protected within this context
   layers_.InternalSwap(&other->layers_);
                                       ^
In file included from Release/obj/gen/vector_tile.pb.h:29:0,
                 from Release/obj/gen/vector_tile.pb.cc:5:
/home/m/3.0.16/mapnik/mason_packages/.link/include/google/protobuf/repeated_field.h:2247:6: note: declared protected here
 void RepeatedPtrFieldBase::InternalSwap(RepeatedPtrFieldBase* other) {
      ^~~~~~~~~~~~~~~~~~~~
gyp/vector_tile.target.mk:143: recipe for target 'Release/obj.target/vector_tile/gen/vector_tile.pb.o' failed
make[3]: *** [Release/obj.target/vector_tile/gen/vector_tile.pb.o] Error 1
rm gyp_build_gyp_make_vector_tile_target_run_protoc.intermediate
make[3]: Leaving directory '/home/m/3.0.16/mapnik-vector-tile-master/build'
Makefile:21: recipe for target 'build/Makefile' failed
make[2]: *** [build/Makefile] Error 2
make[2]: Leaving directory '/home/m/3.0.16/mapnik-vector-tile-master'
Makefile:34: recipe for target 'release_base' failed
make[1]: *** [release_base] Error 2
make[1]: Leaving directory '/home/m/3.0.16/mapnik-vector-tile-master'
Makefile:25: recipe for target 'release' failed
make: *** [release] Error 2
m@ubuntu:~/3.0.16/mapnik-vector-tile-master$ 
talaj commented 6 years ago

@am2222, what is the version in your vector_tile.pb.h? Cannot there be some conflict with protobuf-compiler from your system?

I see this in my vector_tile.pb.h, for example:

#if GOOGLE_PROTOBUF_VERSION < 3000000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif
am2222 commented 6 years ago

@talaj Hi, How can I find its version?sorry for my simple question? As I noticed bootstap.sh tries to download protobuf by itself,doesnt it?

talaj commented 6 years ago

Take a look into Release/obj/gen/vector_tile.pb.h. Also check apt search protobuf-compiler.

I remember I was also facing this error, but cannot remember what was the culprit.

flippmoke commented 6 years ago

@am2222 yes, by default the make instruction sets a PATH variable that should include your path to a bin in the mason_packages path for protoc.

PATH="`pwd`/mason_packages/.link/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" \

I am wondering if perhaps you have a local protoc installed and this is causing problems.

For example locally for me:

mthompson@flippmoke:~/src/mapnik-vector-tile$ which protoc
/Users/mthompson/src/mapnik-vector-tile/mason_packages/.link/bin/protoc

I wonder if you are pulling back a locally installed protoc in this step rather then ours for some reason.

Also these can be your friends sometime:

make clean

or

make distclean
am2222 commented 6 years ago

Dear @talaj and @flippmoke thanks for your helps, I tried on ubuntu 17.1 and it worked fine. But I have faced another problem, it does not support make install, I thought I can use this library just like mapnik but it seems it is a bit complicated for me

flippmoke commented 6 years ago

@am2222 it is a legacy of the library originally being designed as a header only library, but due to compile times was split out into hpp and ipp files. The library still operates as a header only library for use typically. You can see how this works somewhat at the bottom of hpp files: https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_processor.hpp#L209-L211

Just write your C++ code and include the hpp files you need and it works.

am2222 commented 6 years ago

@flippmoke thanks very much for your help

am2222 commented 6 years ago

@flippmoke Hi, I investigated a lot but still have problem using it, I also looked at examples but the problem is when I try to make them in their current folder it raises error, I want to use it in Qt,is it possible to let me know which dependencies should I add to my project to be able to use it? thanks very much

flippmoke commented 6 years ago

@am2222 I should note that we have prebuilt binaries for mapbox-gl-native with Qt.

Could you provide any sample code or layout? I am not sure exactly what you are doing.

am2222 commented 6 years ago

@flippmoke Hi, Thanks very much for your help In fact I just want to save my maps which are rendered by mapnik as vector tiles, So I am working on an app which gets x,y,z and then extracts the related extent and then generates related map using mapnik.xml file and converts it to a vector tile. I added all header files from src folder plus vector_tile_pb.h and added mapnik and protobuf as libraries but some of headers in src folder needs for example agg to be referenced . I am totally confused with it, if it is compiled on my system why it says those files does not exists for example the current error is

/home/m/untitled2/src/vector_tile_raster_clipper.ipp:12: error: agg_rendering_buffer.h: No such file or directory
 #include "agg_rendering_buffer.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~

I have also attached my application. the main source code is as

#include <iostream>
#include <fstream>
#include <string>
#include <boost/filesystem.hpp>
#include <vector>

// mapnik
#include <mapnik/map.hpp>
#include <mapnik/load_map.hpp>
#include <mapnik/value_error.hpp>
#include <mapnik/datasource_cache.hpp>
#include <mapnik/box2d.hpp>
#include <mapnik/proj_transform.hpp>
#include <mapnik/image_util.hpp>

// mapnik vector tiles generation
#include <vector_tile.pb.h>
#include <vector_tile_projection.hpp>
#include <vector_tile_processor.hpp>
#include <vector_tile_backend_pbf.hpp>
#include <vector_tile_datasource.hpp>
#include <vector_tile_util.hpp>
#include <vector_tile_compression.hpp>

using namespace std;
using namespace mapnik;

static int compression = 0;
static int tile_size = 256;

void create_tiles(int z, int maxz, int x, int y, Map tile_map) ;
void create_single_tile(int z, int x, int y, Map tile_map) ;
void create_path(int z, int x) ;

int main (int argc, char* argv[]) {
    int minz, maxz, x, y;
    string style_path;

    for (int i=0 ; i<argc ; i++){
        if (compression)
            argv[i - compression] = argv[i];
        if (strncmp(argv[i], "--compress", 10) == 0)
            compression ++;
    }

    if (argc != 6 && argc != 7) {
        clog << "command: " << argv[0] << "[--compress] minz maz x y path/to/stylesheet.xml\n";
        clog << "    where x and y are the values at the minz zoom_level\n";
        return EXIT_FAILURE;
    }

    minz = atoi(argv[1]);
    maxz = atoi(argv[2]);
    x = atoi(argv[3]);
    y = atoi(argv[4]);
    style_path = argv[5];

    //add plugins to be able to load the shapefile (and also other formats) in load_map()
    datasource_cache::instance().register_datasources("/usr/lib/mapnik/input/");

    GOOGLE_PROTOBUF_VERIFY_VERSION;

    // initialize map with the data
    Map tile_map(tile_size, tile_size, "900913");
    load_map(tile_map, style_path, true);

    create_path(minz, x);
    create_tiles(maxz, minz, x, y, tile_map);
    cout << "Tiles created.\n";

    google::protobuf::ShutdownProtobufLibrary();

    return EXIT_SUCCESS;
}

/*
    create the directories where the tiles will be generated
*/
void create_path(int z, int x) {
    string pathname = to_string(z) + "/" + to_string(x);
    boost::filesystem::path path(pathname);
    boost::filesystem::create_directories(pathname);
}

/*
    create all tiles and paths recursively
*/
void create_tiles(int maxz, int z, int x, int y, Map tile_map) {

    //create the current tile
    create_single_tile(z, x, y, tile_map);

    if (z+1 <= maxz) {
        create_path(z+1, 2*x);
        create_path(z+1, 2*x+1);

        //recursively create the four subtiles (at the next zoom level) of this tile
        create_tiles(maxz, z+1, 2*x,   2*y  , tile_map);
        create_tiles(maxz, z+1, 2*x+1, 2*y  , tile_map);
        create_tiles(maxz, z+1, 2*x,   2*y+1, tile_map);
        create_tiles(maxz, z+1, 2*x+1, 2*y+1, tile_map);
    }
}

/*
    creation of a single tile
*/
void create_single_tile(int z, int x, int y, Map tile_map) {
    int path_multiplier = 16;
    double minx, miny, maxx, maxy;
    string buffer, compressed;

    // bounding box
    mapnik::vector_tile_impl::spherical_mercator merc(tile_size);
    merc.xyz(x, y, z, minx, miny, maxx, maxy);

    box2d<double> bbox;
    bbox.init(minx, miny, maxx, maxy);

    tile_map.zoom_to_box(bbox);

    vector_tile::Tile tile;
    mapnik::vector_tile_impl::backend_pbf backend(tile, path_multiplier);
    request mapnik_request(tile_size, tile_size, bbox);
    mapnik::vector_tile_impl::processor<mapnik::vector_tile_impl::backend_pbf> ren(backend, tile_map, mapnik_request);

    ren.apply();

    tile.SerializeToString(&buffer);
    if (compression) {
        mapnik::vector_tile_impl::zlib_compress(buffer, compressed);
        buffer = compressed;
        cout << "Creating compressed tile for z = " << z << " ; x = " << x << " ; y = " << y << "\n" ;
    } else {
        cout << "Creating tile for z = " << z << " ; x = " << x << " ; y = " << y << "\n";
    }
    ofstream output(to_string(z) + "/" + to_string(x) + "/" + to_string(y) + ".pbf");
    output << buffer ;
}

which I have downloaded from github

vectortileGenerator.zip

flippmoke commented 6 years ago

@am2222 Have you seen https://github.com/mapbox/tippecanoe ?

Some notes on your code here -- you have a lot going on here you don't need.

First you have no need for #include <vector_tile.pb.h> -- this is the protobuffer stuff we use in our tests only here, you see it sprinkled elsewhere because sometime in the past we moved from libprotobuf -> protozero. Protozero is our specially designed header only library for parsing protobufs and its a lot faster then libprotobuf from google. Drop all the google protobuf code.

You really just need to do something like this - https://github.com/mapbox/mapnik-vector-tile/blob/master/test/vector_tile.cpp#L50-L58

    unsigned tile_size = 4096;
    mapnik::Map tile_map(tile_size, tile_size, "+init=epsg:3857");
    mapnik::load_map(tile_map, style_path, true);
    mapnik::vector_tile_impl::processor ren(tile_map);
    int x = 0;
    int y = 0;
    int z = 0;
    mapnik::vector_tile_impl::tile out_tile = ren.create_tile(x,y,z,tile_size);
    std::string buffer = out_tile.get_buffer();
am2222 commented 6 years ago

Dear @flippmoke thanks very much for your help but I have faced a bad problem here, in vector_tile_processor.h threre is a reference to vector_tile_raster_clipper which has a reference to agg_rendering_buffer.h I tried to use sudo apt-get install libagg-dev but it is already installed on my system. I Have added these libraries in my build file

SOURCES += main.cpp \
    vector_tile_processor.cpp \
    vector_tile_geometry_decoder.cpp \
    vector_tile_datasource_pbf.cpp \
    vector_tile_tile.cpp

LIBS += -L$$PWD/../../../usr/local/lib/ -lmapnik
LIBS += -L$$PWD/../../../usr/local/lib/ -lharfbuzz

INCLUDEPATH += $$PWD/../../../usr/local/include
DEPENDPATH += $$PWD/../../../usr/local/include

HEADERS += \
    vector_tile_processor.hpp \
    vector_tile_geometry_decoder.hpp \
    vector_tile_datasource_pbf.hpp \
    vector_tile_tile.hpp \
    vector_tile_merc_tile.hpp \
    vector_tile_config.hpp \
    vector_tile_processor.ipp \
    vector_tile_layer.ipp \
    vector_tile_geometry_encoder_pbf.ipp \
    vector_tile_geometry_decoder.ipp \
    vector_tile_featureset_pbf.ipp \
    vector_tile_datasource_pbf.ipp \
    vector_tile_compression.ipp \
    vector_tile_geometry_clipper.hpp

 LIBS += -lagg
LIBS+=-L/home/m/3.0.16/mason_packages/.link/lib -L/home/m/3.0.16/mason_packages/linux-x86_64/libgdal/2.1.3/lib -pthread -lboost_filesystem -lboost_regex -lcairo -lpixman-1 -lpng -lproj -ltiff -lwebp -licui18n -lboost_system -lharfbuzz -ljpeg -licuuc -lfreetype -licudata -lz -ldl

Can you please give me some hints about it?thanks

flippmoke commented 6 years ago

Use the agg from mapnik: https://github.com/mapnik/mapnik/tree/master/deps/agg If you have mapnik installed correctly, I suggest you use mapnik-config

For example:

mapnik-config --libs

or

mapnik-config --includes
am2222 commented 6 years ago

@flippmoke Thanks very much for your help, I finally could manage to fix dependencies problem, but Can you please give me some details about tile.ParseFromString(out_tile.get_buffer()); It seems it does not exists in headers.

/home/m/untitled4/main.cpp:72: error: no member named 'ParseFromString' in 'mapnik::vector_tile_impl::tile'
       tile2.ParseFromString(buffer);
       ~~~~~ ^
// vector output api
#include "vector_tile_compression.hpp"
#include "vector_tile_strategy.hpp"
#include "vector_tile_projection.hpp"
#include "vector_tile_datasource_pbf.hpp"
// mapnik-vector-tile
#include "vector_tile_processor.hpp"
#include "vector_tile_geometry_decoder.hpp"
#include "vector_tile_datasource_pbf.hpp"

Do I missed any other includes?

flippmoke commented 6 years ago
tile.ParseFromString

That function and that part of the code are simply convience functions that we have using from libprotobuf and its created header that I told you we don't need. If you look at the test case example code I linked after that short set of code that I outlined above all the rest is simply checking the test results. You simply need the out_tile.get_buffer() <-- the is the resulting vector tile.

am2222 commented 6 years ago

@flippmoke thanks, In fact I am now converting my maps to vector tiles but if I want to render them back to maps I saw this code was used to


mapnik::Map map(tile_size,tile_size,"+init=epsg:3857");
mapnik::vector_tile_impl::tile tile2=ren.create_tile(x,y,z,tile_size);;
tile2.ParseFromString(buffer);
 std::shared_ptr<mapnik::vector_tile_impl::tile_datasource_pbf> ds
      = std::make_shared<mapnik::vector_tile_impl::tile_datasource_pbf>(layer_reader,0,0,0);
  lyr2.set_datasource(ds);
 lyr2.add_style("style");
 map.add_layer(lyr2);
mapnik::load_map(map,"/home/m/vectorTiles/mapnik-vector-tile-3.0.x/test/data/polygon-style.xml");
 map.zoom_all();
mapnik::image_rgba8 im(map.width(),map.height());
 mapnik::agg_renderer<mapnik::image_rgba8> rend(map,im);
rend.apply();
mapnik::save_to_file(im,"rasterize-expected-1.png","png32");

But I have faced the problem that this function does not exist.

flippmoke commented 6 years ago

If you had a std::string variable named buffer (your vector tile) you would do the following to go the other way back to an image.

int x = 0;
int y = 0;
int z = 0;
protozero::pbf_reader pbf_layer(buffer);
// Create datasource
std::shared_ptr<mapnik::vector_tile_impl::tile_datasource_pbf> ds
      = std::make_shared<mapnik::vector_tile_impl::tile_datasource_pbf>(pbf_layer,x,y,z);

// Create map
mapnik::Map map(256,256,"+init=epsg:3857");
// Load XML with style
mapnik::load_map(map,"/home/m/vectorTiles/mapnik-vector-tile-3.0.x/test/data/polygon-style.xml");

// Create layer
mapnik::layer lyr2("layer",map.srs());
lyr2.set_datasource(ds);
lyr2.add_style("style"); // name of style from xml

// Add layer to map
map.add_layer(lyr2);
map.zoom_all();

// Output image setup
mapnik::image_rgba8 im(map.width(),map.height());

// create renderer and run it
mapnik::agg_renderer<mapnik::image_rgba8> rend(map,im);
rend.apply();

// save updated image to file path
mapnik::save_to_file(im,"rasterize-expected-1.png","png32");
am2222 commented 6 years ago

thanks very much dear @flippmoke

am2222 commented 6 years ago

@flippmoke Thanks very much for your helps, I thinks I am missing sth in converting to Vector tiles, When I want to covert a buffer to mapnik image I face this error

The required name field is missing in a vector tile layer.

Is this because of not adding style name into layer?or it is sth wrong with converting mapnik map to vector tile?

in my input map xml I have set layer names

<Layer name="landuse_gen1"
  status="on"
  srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
    <StyleName>landuse_gen1</StyleName>
    <Datasource>
       <Parameter name="file"><![CDATA[country/mapnik.sqlite]]></Parameter>
       <Parameter name="geometry_field"><![CDATA[geometry]]></Parameter>
       <Parameter name="id"><![CDATA[landuse_gen1]]></Parameter>
       <Parameter name="initdb"><![CDATA[PRAGMA cache_size = -20480;]]></Parameter>
       <Parameter name="key_field"><![CDATA[rowid]]></Parameter>
       <Parameter name="metadata"><![CDATA[mapnik_metadata]]></Parameter>
       <Parameter name="project"><![CDATA[osm-bright-spatialite]]></Parameter>
       <Parameter name="table"><![CDATA[( SELECT rowid, geometry, type
  FROM osm_landusages_gen1
  ORDER BY area DESC
) AS data]]></Parameter>
       <Parameter name="type"><![CDATA[sqlite]]></Parameter>
       <Parameter name="use_spatial_index"><![CDATA[true]]></Parameter>
       <Parameter name="wkb_format"><![CDATA[twkb]]></Parameter>
    </Datasource>
  </Layer>

The output buffer is attached to this post, Is not possible to make it human readable? test.txt

am2222 commented 6 years ago

@flippmoke is not this problem because of this fact that my map which I am converting to vector tiles consists of about 8 layers? can you please give me some hints about this problem?thanks

flippmoke commented 6 years ago

@am2222 for some reason the vector tile you are creating is not proper, so this is something during your creation process.

am2222 commented 6 years ago

@flippmoke thanks very much, I am now trying to just use one layer I hope the problem fixes,thanks

am2222 commented 6 years ago

@flippmoke Hi, I think there is sth wrong with my creation process as I tried with singapour.shp and it also returned this error, Can you please help me about this problem? I am generating vector tiles using this method


     std::string  compressed;
     mapnik::Map mm(tile_size, tile_size, "+init=epsg:3857");
     mapnik::load_map(mm, "/home/m/vectorTiles/mapnik-vector-tile-3.0.x/test/data/singapore.xml", true);
    mapnik::layer l =mm.get_layer(0);
    std::cout <<  l.name();
   mapnik::vector_tile_impl::processor ren(mm);
   x=1;
   y=1;
   z=0;
   mapnik::vector_tile_impl::tile out_tile = ren.create_tile(x,y,z,tile_size);
    mm.zoom_to_box(out_tile.extent());
     mm.zoom_all();
     mapnik::image_rgba8 buf1(mm.width(),mm.height());
    mapnik::agg_renderer<mapnik::image_rgba8> ren1(mm,buf1);
    ren1.apply();
#ifdef HAVE_PNG
         mapnik::save_to_file(buf1,"2.png","png");
#endif
    std::vector<std::string> ls =out_tile.get_layers();
    std::string buffer = out_tile.get_buffer();
    mapnik::vector_tile_impl::zlib_compress(buffer, compressed);
    protozero::pbf_reader pbf_layer(buffer);
    // Create datasource
    std::shared_ptr<mapnik::vector_tile_impl::tile_datasource_pbf> ds
          = std::make_shared<mapnik::vector_tile_impl::tile_datasource_pbf>(pbf_layer,x,y,z);
    // Create map
    mapnik::Map map(256,256,"+init=epsg:3857");
    // Load XML with style
    mapnik::load_map(map,"/home/m/3.0.16/demo/c++/osmbright_style.xml");
    // Create layer
    mapnik::layer lyr2("layer",map.srs());
    lyr2.set_name("test_name");
    lyr2.set_datasource(ds);
    lyr2.add_style("landuse_gen1");
    lyr2.add_style("style");
    // Add layer to map
    map.add_layer(lyr2);
    map.zoom_all();
    // Output image setup
    mapnik::image_rgba8 im(map.width(),map.height());
    // create renderer and run it
    mapnik::agg_renderer<mapnik::image_rgba8> rend(map,im);
    rend.apply();
    // save updated image to file path
    mapnik::save_to_file(im,"rasterize-expected-1.png","png32");

my xml file is as following

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" maximum-extent="-20037508.34,-20037508.34,20037508.34,20037508.34">
  <Parameters>
    <Parameter name="center">103.92383995989066,1.3312732063470314,0</Parameter>
    <Parameter name="bounds">103.92116959172444,1.3293149668842956,103.92651032805688,1.3332314458097674</Parameter>
    <Parameter name="format">pbf</Parameter>
    <Parameter name="json"><![CDATA[{"vector_layers":[{"id":"zika_cluster","description":"","minzoom":0,"maxzoom":22,"fields":{"OBJECTID":"Number","LOCALITY":"String","CASE_SIZE":"Number","NAME":"String","HYPERLINK":"String","CLUSTER_ID":"String","INC_CRC":"String","FMEL_UPD_D":"String","X_ADDR":"Number","Y_ADDR":"Number","SHAPE_Leng":"Number","SHAPE_Area":"Number"}}]}]]></Parameter>
    <Parameter name="maxzoom">15</Parameter>
    <Parameter name="minzoom">0</Parameter>
  </Parameters>
<Style name="style">
    <Rule>
        <PolygonSymbolizer fill="red" />
    </Rule>
</Style>
  <Layer name="zika_cluster" buffer-size="8" srs="+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.8333333333333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +units=m +no_defs">
<StyleName>style</StyleName>
    <Datasource>
      <Parameter name="type">shape</Parameter>
      <Parameter name="file">singapore.shp</Parameter>
      <Parameter name="layer">zika_cluster</Parameter>
    </Datasource>
  </Layer>
</Map>

2

this is rendered map, so the input xml is fine. But when I want to convert buffer it returns

The required name field is missing in a vector tile layer. but layer in xml has a name, What is my mistake? I am using 3.0.x version ,Can you please help me find a solution? It is a few weeks which I am working on this error but could not find any solutions. thanks

flippmoke commented 6 years ago

I believe I provided bad information here, the pbf_layer needs to be created from the layer's buffer not from the entire vector tile's buffer. You will want to use one of these two methods to get that from the tile object:

https://github.com/mapbox/mapnik-vector-tile/blob/master/src/vector_tile_tile.hpp#L198

am2222 commented 6 years ago

@flippmoke thanks very much, So you mean I have to convert std::string buffer = out_tile.get_buffer(); which I have got from vector tile into separate layers? I have to look for a method to convert a vector tiles buffer into a tile object I tried to find related methods to convert an string into tile and get related layers but could not find any, Is it even possible?or I have to convert each layer into a single vector tile?

am2222 commented 6 years ago

@flippmoke well I figure out and find mu mistake, but I still have problem about converting a vector tile which is in string format to tile object, I could not find its related classes yet

am2222 commented 6 years ago

@flippmoke The only function which I found in tests to convert a string buffer to a tile object is

vector_tile::Tile tile; tile.ParseFromString(out_tile.get_buffer());

this function is in #include "vector_tile.pb.h" which you said is not useful in current version, What other options exists in order to convert an string to tile?

am2222 commented 6 years ago

I tried this method and it seems it finally worked, I have no idea if it is a good solution or not

       // Create map
       mapnik::Map map(256,256,"+init=epsg:3857");
       // Load XML with style
       mapnik::load_map(map,"/home/m/3.0.16/demo/c++/osm_bright_style.xml");

       mapnik::vector_tile_impl::processor ren2(map);
       //mapnik::vector_tile_impl::tile out_tile2 = ren2.create_tile(x,y,z,tile_size);

       mapnik::vector_tile_impl::merc_tile out_tile3 = ren2.create_tile(x,y,z,tile_size);

       mapnik::vector_tile_impl::merge_from_buffer(out_tile3,buffer.c_str(),buffer.size());
springmeyer commented 6 years ago

Looks like this is resolved, so closing this issue.