I'm using Ubuntu 16.04, and it seems a lot of other packages are heavily based on the current default protobuf 2.6.1 from repository. How to force to upgrade from current repo's protobuf 2.6.1 to the newest 3.0.0-b3?
Thank you
Pei
You will need to compile protobuf 3.0.0-b3 from source following the instructions in the README.md file:
https://github.com/google/protobuf/blob/master/src/README.md
@xfxyjwf I did install everything from source, strictly following the instructions in README.md ... I've got two versions of protobuf on my computer now... one is 2.6.1, the other is 3.0.0b4
So you are asking how to make all other packages use 3.0.0b4 instead of 2.6.1? I don't think that's possible.
Closing it for clean up. Feel free to reopen if still have questions
@xfxyjwf
That is correct... I'm thinking if we can let everything depends on the most recent protobuf 3.x, instead of just 2.6.1.
Because clearly, when I tried to install libgtk-3-dev, it let me install libprotobuf-dev 2.6.1 .... Really NOT what I want....
Cheers
Hi,
I am running Pycharm on my sysem and wrote a program. The program gives me error that protobuf 2.6.1 found whereas 3.0 is required. I have downloaded and installed newste version but still same error exists. How can i upgrade to newer version?
**> [libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.0.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/src/google/protobuf/any.pb.cc".)
terminate called after throwing an instance of 'google::protobuf::FatalException'
what(): This program requires version 3.0.0 of the Protocol Buffer runtime library**
@sajjo79 It sounds like you are taking code generated with the 3.0.0 protobuf compiler and linking it against the 2.6.1 runtime library. To fix that problem you will have to use a consistent version, so you would probably want to just make sure to link against the 3.0.0 library.
@acozzette could you help me how to use a consistent version? i install the Gazebo8 under a vittualenv which the version of protoc is 3.4.0 , but later i still meet a problem that
@zengjie617789 I'm not sure exactly how your build setup works but the important thing is just to have the same version for protoc and the libraries. Probably the easiest solution is to find out what version of the PyPI package you're using and then download and use a matching protoc from our releases.
@acozzette Hi, I have protoc 2.6, I install protoc 3.6(from source), and when I type protoc --version, it gets 'libprotoc 3.6.0', How I can get origin protoc 2.6(when I type protoc --version, It outputs protoc 2.6)?
If you're using Linux then I'm guessing you have protoc 2.6 at /usr/bin/protoc (installed via the package manager) whereas your 3.6 version was installed to /usr/local/bin/protoc. If you want to use 2.6, you could either explicitly call /usr/bin/protoc or delete the version in /usr/local/bin.
Hi,
I am trying to compile OAI develop-nb-iot branch code, using the command ./build_oai -I .
Then build is failing because of the following error:
t/issue330/issue330.proto:1:10: Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". Makefile:2417: recipe for target 't/issue330/issue330.pb-c.h' failed make: * [t/issue330/issue330.pb-c.h] Error 1 make: Waiting for unfinished jobs.... t/issue330/issue330.proto:1:10: Unrecognized syntax identifier "proto3". This parser only recognizes "proto2". Makefile:2417: recipe for target 't/issue330/issue330.pb-c.c' failed make: ** [t/issue330/issue330.pb-c.c] Error 1
My protoc version is 2.6.1 and I downloaded the protoc version of 3.1
but still when I try to build, OAI code using ./build_oai -I it is fetching 2.6.1 but it should go to 3.1 to resolve the error and get compiled.
How to resolve the issue?
regards,
Sravya
Most helpful comment
If you're using Linux then I'm guessing you have protoc 2.6 at
/usr/bin/protoc(installed via the package manager) whereas your 3.6 version was installed to/usr/local/bin/protoc. If you want to use 2.6, you could either explicitly call/usr/bin/protocor delete the version in/usr/local/bin.