emmmmmmm..... Ubuntu16.04自带protobuf
protoc --version 查看版本
whereis protoc 查看安装位置
which protoc 如果有多个protobuf,查看默认使用的protobuf
方法一:
1、下载google protocol buffers,下载地址:http://code.google.com/p/protobuf/,解压到了/usr/local下
2、./configue,不出意外如下:
cd protobuf-master./configue
but:
看网上所有的教程都是直接进入protobuf主目录,并且./configue,但是我运行时一直提示没有./configue文件
安装aotomake,先用automaker生成configure文件:
apt-get install automake./autogen.sh./configure
然后坑爹的是,我在运行autogen.sh时,报了下面的错:
+ mkdir -p third_party/googletest/m4+ autoreconf -f -i -Wall,no-obsoleteconfigure.ac:104: error: possibly undefined macro: AC_PROG_LIBTOOL If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation.autoreconf: /usr/bin/autoconf failed with exit status: 1
大意是找不到libtool解决:
apt-get install libtool
3、make:
makemake checkmake install
然后 make check的时候,报了一个乱七八糟的错误,好不容易解决了,又报了另一个错,后来师兄告诉我,protobuf安装时make check出错可以先不用管,暂时跳过,后期出错了再回来排查就好了。
4、检查是否安装成功
protoc --version
安装成功会显示版本信息,安装失败会提示错误信息,不出意外,又报错了。。。。。。错误信息:
protoc —versionprotoc: error while loading shared libraries: libprotoc.so.17: cannot open shared object file: No such file or directory
这是Ubuntu安装protobuf常见的一种问题,原因是:protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib 不在Ubuntu体系默认的 LD_LIBRARY_PATH 里,所以就找不到该lib[2]。解决方法,在/usr/lib下创建protocol buffer相关库的软链接:
cd /usr/libln -s /usr/local/lib/libprotobuf.so.17 libprotobuf.so.17ln -s /usr/local/lib/libprotoc.so.17 libprotoc.so.17
至此,protobuf安装成功,但是想要在python中使用,还要编译python接口
5、编译protobuf的python接口
cd python python setup.py build python setup.py test python setup.py install
在python中测试一下,如果import google.protobuf没有报错就可以用啦。
方法二:
pip or apt
我的妈耶,环境问题对小白真的一点一点都不友好,各种报错。。。为什么大佬们配环境可以这么顺利,羡慕大佬 ???
参考链接:
【1】Ubuntu 16.04 安装 protobuf 以及测试/使用:https://blog.csdn.net/qq_16775293/article/details/81119375(包含protobuf的安装和覆盖安装流程)
【2】protocol buffer安装后使用出错:https://blog.csdn.net/keheinash/article/details/51063332(protoc --version出错的两种解决方法)
---------------------
作者:王小白的博客
来源:CSDN
原文:https://blog.csdn.net/sunshine__0411/article/details/84251773
版权声明:本文为博主原创文章,转载请附上博文链接!