Protobuf找不到共享库


67

我已经使用以下命令安装了protobuf:

./configure
make
make check
make install

但是,当我运行时,出现protoc以下错误:

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory

Answers:


231
sudo ldconfig

要么

export LD_LIBRARY_PATH=/usr/local/lib

应该解决问题。


3
@Bagzergprotoc需要知道在哪里寻找共享库。(它无法搜索您的整个系统)。这类似于如何PATH查找可执行文件。请参阅此处的说明LD_LIBRARY_PATH
Kshitiz Sharma 2015年

截至2016年2月,在debian 8上安装了协议缓冲区2.6.1,这解决了缺少库的问题。感谢@KshitizSharma
Leonardo Brambilla

我使用第二种方法“ export ...”,但是我不知道为什么第一种方法不起作用。
lirui '16

2
谢谢。它完成了工作。但是,我认为使用此方法更合适:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
ponir

大声笑为我重新启动机器解决了问题
Martin Kosicky



3

通过执行以下步骤可以解决此问题:

sudo make uninstall
sudo make distclean
sudo make clean
./configure --prefix=/usr

这将清理当前安装并在/ usr处安装protobuf。在确保/etc/ld.so.conf中列出了/ usr / local / lib之后,运行ldconfig以更新ld.so.cache。即编辑/etc/ld.so.conf并将/ usr / local / lib附加到它并运行ldconfig


2
在这里,您有两个单独的解决方案混合在一起(使用ldconfig并简单地安装到/ usr)。答案很混乱。
David Ljung Madison Stellar 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.