如何在 ubuntu 20.04 机器上安装 libprotobuf.so.7?

如何在 ubuntu 20.04 机器上安装 libprotobuf.so.7?

我在运行程序时看到此消息。

error while loading shared libraries: libprotobuf.so.7: cannot open shared object file:

我如何安装 libprotobuf.so.7?

我在 ubuntu 20.04 上。我试过了,apt-file libprotobuf.so.7但什么也没发生。我试过sudo apt install libprotobuf7或 for libprotobuf-c,但找不到包。我该怎么办?

我的操作系统版本:

LSB Version:    core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:    20.04
Codename:   focal

添加 :
我发现这些文件已经安装在我的系统中。

/usr/lib/x86_64-linux-gnu/libprotobuf.so.17
/usr/lib/x86_64-linux-gnu/libprotobuf.so
/usr/lib/x86_64-linux-gnu/libprotobuf.so.17.0.0

因此链接/usr/local/lib/libprotobuf.so.7/usr/lib/x86_64-linux-gnu/libprotobuf.so。(/usr/local/lib2 is inLD_LIBRARY_PATH)。但是当我执行程序时,我看到:

cm7_tarmac_decode: error while loading shared libraries: libprotobuf.so.7: wrong ELF class: ELFCLASS64

当程序(cm7_tarmac_decode)正在寻找 32 位版本时,我认为这个 libprotobuf.so.17 适用于 x86_64 机器。

因此apt-cache search protobuf我认为 libprotobuf17 是我的包,并且因为它应该是 32 位的,所以我尝试了一下sudo apt install libprotobuf17:i386并安装了一些文件。
dpkg libprotobuf17:i386显示这些已安装的文件。

/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libprotobuf.so.17.0.0
/usr/share
/usr/share/doc
/usr/share/doc/libprotobuf17
/usr/share/doc/libprotobuf17/changelog.Debian.gz
/usr/share/doc/libprotobuf17/copyright
/usr/lib/i386-linux-gnu/libprotobuf.so.17

因此在 /usr/lib32 下我这样做了

/usr/lib32$ sudo ln -s /usr/lib/i386-linux-gnu/libprotobuf.so.17 libprotobuf.so.7

(将版本 17 伪装成版本 7)。但是当我执行该程序时,我收到了此错误消息。

cm7_tarmac_decode: symbol lookup error: cm7_tarmac_decode: undefined symbol: _ZN6google8protobuf8internal12kEmptyStringE

这意味着 libprotobuf.so.17 没有_ZN6google8protobuf8internal12kEmptyStringE真正的 libprotobuf.so.7 文件中的符号。
我试过了sudo apt install libprotobuf7:i386,但没有这样的包。

添加2:
请参阅下面 Tooster 的回答。但在看到该答案之前,我从同事那里收到了 libprotobuf.so.7 文件并使用了它。

答案1

这是根据网络上的少量信息尝试回答的:

基于此线程(中间有关于需要协议缓冲区 2.4.1 的注释)此主题您可以尝试安装 32 位 2.4.1 版本的 protobufs,然后使用它LD_LIBRARY_PATH来设置已安装缓冲区的路径,例如使用类似以下内容(请注意,它是临时的):

setenv LD_LIBRARY_PATH /arm/tools/google/protobuf/2.4.1/rhe5-x86_32/lib:/arm/tools/google/protobuf/2.4.1/rhe5-x86_64/lib:$LD_LIBRARY_PATH

或者任何你要安装的路径。如需更多信息,你可以尝试或者线。

相关内容