0

I use Ubuntu 16.04, gcc 5.4.0 and CLion (C++ environment). I am trying to use caffe. And it needs protobuf for installation. So, it works fine in Python, but C++ gives me a run-time exception:

libprotobuf FATAL google/protobuf/stubs/common.cc:78] This program was compiled against version 2.6.1 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.3.0). Contact the program author for an update. If you compiled the program yourself,  makesure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "/build/mir-ui6vjS/mir-0.26.3+16.04.20170605/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.cc".)
    terminate called after throwing an instance of 'google::protobuf::FatalException'
    what(): This program was compiled against version 2.6.1 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.3.0). Contact the program author for an update. 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 "/build/mir-ui6vjS/mir-0.26.3+16.04.20170605/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.cc".)

As far as I understood, exception tells me that it needs protobuf 2.6.1, but 3.3.0 is installed. But command apt-get upgrade libprotobuf-dev gives me libprotobuf-dev is already the newest version (2.6.1-1.3). so i do have 2.6.1.

Could you, please, advice me how could i fix it ?

P.S. I dont know if it is important or not but I added caffe path to ~/.bashrc

Eliethesaiyan
  • 2,327
  • 1
  • 22
  • 35

1 Answers1

0

You can specify the version that you want to use in

CAFFE_ROOT/cmake/Protobuf.cmake

by adding the version number in find_package :

find_package( Protobuf 2.6.1 REQUIRED )

That way you can keep the multiple versions it doesn't matter.

Ps : I'm not sure version 3.3.0 is supported anyway look at this.

dambromain
  • 191
  • 1
  • 12