This program requires version 3.3.0 of the Protocol Buffer runtime library

1,438 views
Skip to first unread message

tom...@gmx.de

unread,
Jun 21, 2017, 8:02:06 AM6/21/17
to Caffe Users
Hi. I installed caffe as described on https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide. I set WITH_PYTHON_LAYER := 1. Caffe runs fine except when I am trying to load a python layer. It then complains:
I0621 13:38:52.346406 21139 layer_factory.hpp:77] Creating layer data
2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609]
[libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.3.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 "google/protobuf/descriptor.pb.cc".)
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  This program requires version 3.3.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 "google/protobuf/descriptor.pb.cc".)
*** Aborted at 1498045132 (unix time) try "date -d @1498045132" if you are using GNU date ***
PC: @     0x7f48153ec428 gsignal
*** SIGABRT (@0x3e800005293) received by PID 21139 (TID 0x7f4818061ac0) from PID 21139; stack trace: ***
    @     0x7f48153ec4b0 (unknown)
    @     0x7f48153ec428 gsignal
    @     0x7f48153ee02a abort
    @     0x7f481620084d __gnu_cxx::__verbose_terminate_handler()
    @     0x7f48161fe6b6 (unknown)
    @     0x7f48161fe701 std::terminate()
    @     0x7f48161fe919 __cxa_throw
    @     0x7f4816744647 google::protobuf::internal::LogMessage::Finish()
    @     0x7f481674487d google::protobuf::internal::VerifyVersion()
    @     0x7f47e177de34 google::protobuf::protobuf_google_2fprotobuf_2fdescriptor_2eproto::TableStruct::InitDefaultsImpl()
    @     0x7f4816744f75 google::protobuf::GoogleOnceInitImpl()
    @     0x7f47e1779475 google::protobuf::protobuf_google_2fprotobuf_2fdescriptor_2eproto::InitDefaults()
    @     0x7f47e17794a9 google::protobuf::protobuf_google_2fprotobuf_2fdescriptor_2eproto::AddDescriptorsImpl()
    @     0x7f4816744f75 google::protobuf::GoogleOnceInitImpl()
    @     0x7f47e1779525 google::protobuf::protobuf_google_2fprotobuf_2fdescriptor_2eproto::AddDescriptors()
    @     0x7f4817ed26ba (unknown)
    @     0x7f4817ed27cb (unknown)
    @     0x7f4817ed78e2 (unknown)
    @     0x7f4817ed2564 (unknown)
    @     0x7f4817ed6da9 (unknown)
    @     0x7f48032abf09 (unknown)
    @     0x7f4817ed2564 (unknown)
    @     0x7f48032ac571 (unknown)
    @     0x7f48032abfa1 dlopen
    @     0x7f4815a7488d _PyImport_GetDynLoadFunc
    @     0x7f4815ae34be _PyImport_LoadDynamicModule
    @     0x7f4815ae4300 (unknown)
    @     0x7f4815ae45c8 (unknown)
    @     0x7f4815ae56db PyImport_ImportModuleLevel
    @     0x7f4815a5c698 (unknown)
    @     0x7f4815aa81e3 PyObject_Call
    @     0x7f4815b7e447 PyEval_CallObjectWithKeywords
./train.sh: line 1: 21139 Aborted

I investigated three possible packages:
1] pips protobuf: originally 2.6 was installed. I changed to 3.3.0, recompiled caffe, still the same problem
2] libprotobuf-dev: it claims to be libprotobuf10 amd64 3.1.0
3] protobuf-compiler: it claims to be 2.6.1-1.3, a web search suggested there is currently a version maximum of 3.1.0

Any advice is highly appreciated.
Cheers,
Thom

Sean

unread,
Jul 10, 2017, 11:01:45 PM7/10/17
to Caffe Users
I had the same error but somehow got it to work by installing the python protobuf through apt-get (sudo apt-get install python-protobuf) rather than Pip, and running "make pytest" in my Caffe directory. 

It could be the issue is the apt-get Protobuf uses version 2.6 but the protobuf python bindings installed through Pip are version 3.3. Perhaps it is best to only use apt-get or compile protobuf from source then install the python bindings through Pip.

Atena Nguyen

unread,
Jul 11, 2017, 9:41:01 AM7/11/17
to Caffe Users
the newest version is 3.3.0 they have download archived pages for it. You can try to compile it again. 
I face the similar problem but on Window OS. 


Vào 21:02:06 UTC+9 Thứ Tư, ngày 21 tháng 6 năm 2017, tom...@gmx.de đã viết:

vermaa...@gmail.com

unread,
Mar 23, 2018, 6:38:09 AM3/23/18
to Caffe Users
Hi Sean,

I had the same error, also would like to inform you that I have used apt-get install to install protobuf and protoc and unfortunately both are of same version of 2.6.

Still I have same error 
I0323 15:51:42.249531 32196 layer_factory.hpp:77] Creating layer data
[libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.5.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 "google/protobuf/descriptor.pb.cc".)
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  This program requires version 3.5.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 "google/protobuf/descriptor.pb.cc".)

Please suggest how to solve it.


Thanks
Reply all
Reply to author
Forward
0 new messages