Protobuf找不到共享库

Ksh*_*rma 63 protocol-buffers

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

./configure
make
make check
make install
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,protoc我得到以下错误:

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Ksh*_*rma 215

sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

要么

export LD_LIBRARY_PATH=/usr/local/lib
Run Code Online (Sandbox Code Playgroud)

应该解决问题.

  • 谢谢分享,这解决了我的问题 (3认同)
  • @Bagzerg`protoc`需要知道在哪里寻找共享库.(它无法搜索整个系统).这与`PATH`如何帮助定位可执行文件类似.请参阅[post here](https://unix.stackexchange.com/a/45106/19506),其中解释了`LD_LIBRARY_PATH`. (3认同)
  • 谢谢.它完成了这项工作.但是,我认为,使用它更合适:`export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/ usr/local/lib` (2认同)

小智 8

你也可以使用

$ sudo ldconfig # refresh shared library cache.
Run Code Online (Sandbox Code Playgroud)

如安装页面所述


小智 6

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

  1. vim /etc/ld.so.conf
  2. / usr/local/lib(在.conf中添加)

  • 缺少"ldconfig",这可能是最需要的步骤. (8认同)