E build: ImportError: libprotobuf.so.10: cannot open shared object file: No such file or directory

这个问题真的是遇到好多次解决起来都不顺利的。

首先说明libprotobuf.so.10 是protobuf3.0.0版本的。

这个问题应该分成两个方面:

1. 系统存在libprotobuf.so.10 但是运行程序的时候找不到

2. 系统没有libprotobuf.so.10,需要重新编译安装

    针对第一个问题,很可能是在安装protobuf的时候没有指定安装路径,从而找不到。

protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib 不在Ubuntu体系默认的 LD_LIBRARY_PATH 里,所以就找不到该lib。

解决方法:
1.创建文件touch  /etc/ld.so.conf.d/libprotobuf.conf 
2. 将 /usr/local/lib 路径写入libprotobuf.conf 

3. sudo ldconfig 更新一下

4.再运行protoc –version 就可以正常看到版本号了

或者命令行输入:LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 暂时解决问题

   

     针对第二个问题就要安装protobuf了。

github官网GitHub - protocolbuffers/protobuf at v3.0.0

因为我要的是3.0.0版本的,大家各取所需。

这里要注意不要用git clone,可能有问下clone 不下来,如gooletest。

直接下载并解压即可。

这里还需要下载gmock,不然会报错

git clone https://github.com/paulsapps/gmock-1.7.0

把gmock解压出来的目录拷贝到protobuf目录下,改名为gmock

cd protobuf 

vim aotogen.sh将如下代码注释:

if test ! -e gmock; then
  echo "Google Mock not present.  Fetching gmock-1.7.0 from the web..."
  curl -O https://googlemock.googlecode.com/files/gmock-1.7.0.zip
  unzip -q gmock-1.7.0.zip
  rm gmock-1.7.0.zip
  mv gmock-1.7.0 gmock
fi
 

分别执行一下命令:

./autogen.sh
./configure
make
make check
make install

注意make 的时候如果遇到这个问题先不管,继续执行下去:

make[2]: Leaving directory '/home/chanyeol/Downloads/protobuf-master' 

.....

以上命令全部执行完后就回到第一步:

创建文件 /etc/ld.so.conf.d/libprotobuf.conf 包含内容:/usr/local/lib

sudo ldconfig 

再运行protoc --version 就可以正常看到版本号了

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值