ethz-asl / segmap

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

This program requires version 3.9.0 of the Protocol Buffer runtime library, but the installed version is 3.8.0. Please update your library #179

Closed ShuLuamazing closed 2 years ago

ShuLuamazing commented 2 years ago

env: 16.04.1-Ubuntu X86_64, GPU Driver 470.94, Cuda 11.2, Cudnn 8.1

i am tring to build the tensorflow 2.6.2 version with bazel 3.7.2 and Gcc 7.5.0. After about two hours, it actually generate the following shared libs: libtensorflow_cc.so.2.6.2, libtensorflow_framework.so.2.6.2

however, when i excute myself program which link to above shared libraries, it tips following errors:

[libprotobuf FATAL external/com_google_protobuf/src/google/protobuf/stubs/common.cc:75] This program requires version 3.9.0 of the Protocol Buffer runtime library, but the installed version is 3.8.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.

Actually, i check that the environment protobuf version with "protoc --version", it tells 3.9.2 version.

i also remove all the protobuf installed before, downloading the 3.9.2 protobuf version and install. it still tells the same errors.

Did the same question occure in your programe? can you give me some advices or a solution?

Thanks

ShuLuamazing commented 2 years ago

this question has been solved.

my program depends two shared libraries, which both link to tensorflow shared libs. However, for the two libs, one linked to 2.6.2 tensorflow which include 3.9.2 protobuf, other one linked to 1.5.0 tensorflow which include 3.8.0。

after i removed the old tensorflow, and corrected the link directories in Cmakelist.txt, the error tips didn't appear.