hello, i met one question after i update the protobuf from 3.0 to 3.2.
when i run the python code of caffe, the following error will stop the program.
[libprotobuf FATAL google/protobuf/stubs/common.cc:67] This program requires version 3.2.0 of the Protocol Buffer runtime library, but the installed version is 3.0.0. 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 "google/protobuf/any.pb.cc".)
terminate called after throwing an instance of 'google::protobuf::FatalException'
what(): This program requires version 3.2.0 of the Protocol Buffer runtime library, but the installed version is 3.0.0. 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 "google/protobuf/any.pb.cc".)
i have downloaded the newest git code and make install, but still have this problem.
it's my install problem? thanks.
It sounds like you are somehow mixing versions of the protobuf library. I don't know anything about caffe, but perhaps it is linked against the 3.0 version of protobuf, which is conflicting with the 3.2 version you installed from Git.
@haberman Hi, I have a similar problem. So based on your response, if the protobuf was updated to 3.2 after building caffe (or any other package that uses it), then re-building that package would have it link to the correct versions?
I have two versions:
$ /usr/bin/protoc --version
libprotoc 2.5.0
$ protoc --version
libprotoc 3.2.0
$ which protoc
/home/arunirc/anaconda2/bin/protoc
@AruniRC I'm not familiar with the Caffe build process, but the important thing is for the version of the protoc binary used to generate code matches the version of the protobuf library (i.e. libprotobuf) that the code is linked against. So in your case you would want to either (a) use /usr/bin/protoc and link against /usr/lib/libprotobuf... or (b) use /home/arunirc/anaconda2/bin/protoc and link against probably something in /home/arunirc/anaconda2/lib/.... But it's important not to use one version of protoc and the link against different version of libprotobuf. If you can just remove one of the versions from your system then that might be the easiest way to avoid getting things mixed up.
@acozzette Thanks for the explanation. I couldn't remove the /usr/bin version because other people had their code linked with it. However, I put the /home/arunirc/anaconda2/bin/protocas the first item in my PATH environment variable, and re-compiled everything. Also made sure that /home/arunirc/anaconda2/lib was there before /usr/lib in the LD_LIBRARY_PATH variable. Worked!
Great, I'm glad that worked!
@haberman , thanks for your reply.
After clear remove the protobuf3.0, then install protobuf3.2, google-glog, and boost1.63 from source code. i solve this problem.
@heibanke how you removed the protobuf 3.0 liberty and on with path you install the packages
Most helpful comment
@haberman Hi, I have a similar problem. So based on your response, if the protobuf was updated to 3.2 after building caffe (or any other package that uses it), then re-building that package would have it link to the correct versions?
I have two versions: