ethz-asl / segmap

A map representation based on 3D segments
BSD 3-Clause "New" or "Revised" License
1.05k stars 394 forks source link

Protocol Buffer runtime library error #140

Open jaden0747 opened 5 years ago

jaden0747 commented 5 years ago

Hi all, I have successfully compiled segmapper by tensorflow 1.9.0. However, when I try to run the example,

$ source ~/segmap_ws/devel/setup.bash

I encountered an error: [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 "external/protobuf_archive/src/google/protobuf/any.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 "external/protobuf_archive/src/google/protobuf/any.pb.cc".)

jaden@ubuntu:/usr$ roslaunch segmapper kitti_loop_closure.launch ... logging to /home/jaden/.ros/log/89bf512a-6117-11e9-857b-000c29c3dd2d/roslaunch-ubuntu-21214.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:41327/

SUMMARY

PARAMETERS

auto-starting new master process[master]: started with pid [21224] ROS_MASTER_URI=http://localhost:11311

setting /run_id to 89bf512a-6117-11e9-857b-000c29c3dd2d process[rosout-1]: started with pid [21237] started core service [/rosout] process[visualizer-2]: started with pid [21240] process[player-3]: started with pid [21241] process[segmapper-4]: started with pid [21242] [ INFO] [1555508934.507184787]: Opening /home/jaden/.segmap/kitti/2011_09_30_drive_18.bag [ INFO] [1555508935.047605190]: rviz version 1.12.17 [ INFO] [1555508935.047750669]: compiled against Qt version 5.5.1 [ INFO] [1555508935.047760825]: compiled against OGRE version 1.9.0 (Ghadamon) [ INFO] [1555508935.331711027]: Stereo is NOT SUPPORTED [ INFO] [1555508935.331831830]: OpenGl version: 3 (GLSL 1.3).

Waiting 0.2 seconds after advertising topics... done.

Hit space to toggle paused, or 's' to step. [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 "external/protobuf_archive/src/google/protobuf/any.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 "external/protobuf_archive/src/google/protobuf/any.pb.cc".) [segmapper-4] process has died [pid 21242, exit code -6, cmd /home/jaden/segmap_ws/devel/lib/segmapper/segmapper_node name:=segmapper log:=/home/jaden/.ros/log/89bf512a-6117-11e9-857b-000c29c3dd2d/segmapper-4.log]. log file: /home/jaden/.ros/log/89bf512a-6117-11e9-857b-000c29c3dd2d/segmapper-4*.log [PAUSED ] Bag Time: 1317376479.232045 Duration: 0.000000 / 287.641810

Can someone please have a look on my issue? thank you in advance.

YoshuaNava commented 5 years ago

Hi, Do you happen to have Cartographer installed on your system?

jaden0747 commented 5 years ago

Hi, Do you happen to have Cartographer installed on your system?

Hi YoshuaNava, thanks for your response, I just installed a fresh Ubuntu 16.04 and ROS kinetic, Bazel, Tensorflow 1.9.0. I don't know whether it includes the Cartographer you mentioned for I'm new to Linux.

YoshuaNava commented 5 years ago

I would advise checking the versions of Protobuf you have on your system. Apart from that, I'm not sure whether Segmap is compatible with Tensorflow > 1.8. The installation guides makes explicit that it has tested with 1.8.0. link

goldenminerlmg commented 5 years ago

@YoshuaNava Hi! I found that install cartographer will lead this error: "This program requires version 3.4.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 "/home/xx/cartographer_slaml/..../google/protobuf/descriptor.pb.cc".)

So how can I do to fix this issue? I have uninstall the libprotoc but it seems no effect. It's weried that this program dosen't contain any cartographer's dependence, why the link-time library will verifiy in this folder?

In my folder of /usr/lib/x86_64-linux-gnu/ there are libprotobuf.so libprotobuf.so.9 libprotobuf.so.9.0.1 seems these files are conflict with this program? I want uninstall them but fails. Any suggestions?

Thank you very much! Hoping for your reply!

goldenminerlmg commented 5 years ago

@YoshuaNava Hi! Finally I reinstall the protocol and cartographer, install the protoc form source, the error miss!

YoshuaNava commented 5 years ago

Ubuntu 16.04 ships with Protobuf 2.x I think. But it's possible to install protobuf 3.6.x from source.

If you install protobuf 3.4+ from source that would satisfy the requirement of Cartographer immediately.

You should be careful about not breaking gazebo-related pkgs, which use an older version of protobuf, as far as I remember.

Hope this helps.

LiShuaixin commented 4 years ago

Hi @goldenminerlmg , thanks for your suggestion. I'd like to know if you uninstall your original version of protobuf, or just reinstall a new one directly. And whether you rebuilt tensforflow, since protobuf seems like a dependent library of TF. Looking forward to your reply!

LiShuaixin commented 4 years ago

It can be solved by uninstalling the old version of protoc and reinstalling the new one. The version can be checked by protoc --version. Furthermore, the TF should also be rebuilt. The issue could be closed.