I have a project which uses Google Protobuf2
. Now I want to use the prebuilt tensorflow C-API which I integrate via CMake. But now I am getting the following error:
libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.9.0 of the Protocol Buffer runtime library, but the installed version is 2.6.1. Please update your library. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "bazel-out/k8-opt/bin/tensorflow/core/framework/tensor_shape.pb.cc".) terminate called after throwing an instance of 'google::protobuf::FatalException' what(): This program requires version 3.9.0 of the Protocol Buffer runtime library, but the installed version is 2.6.1. Please update your library. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "bazel-out/k8-opt/bin/tensorflow/core/framework/tensor_shape.pb.cc".)
Is there an easy way to fix it? Tensorflow is not exchanging any messages with the rest of the project, so can I just keep both versions? Downgrading the tensorflow proto is not possible since it is a prebuilt library. Upgrading the rest of the project to proto3 would also take a lot of effort. Can I just use proto 3.9.0 and add syntay="proto2" to all old proto files?