首先来个 protobuf 简介:
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
安装步骤:
1、下载 protobuf 并解压;
2、用终端切换到 protobuf 文件夹;
3、执行./autogen.sh ;
由于 google被墙,而执行这个命令会下载 gtest-x.x.x,也就是 Fetching gtest-x.x.x,最终下载失败;
解决方式:自己去网上下载 gtest-x.x.x.zip,并解压到 protobuf文件夹,并重命名 gtest
同理 gmock-x.x.x,也有这个情况
解决方式:自己去网上下载 gmock-x.x.x.zip,并解压到 protobuf文件夹,并重命名 gmock
接着运行./autogen.sh 出现错误了
autogen.sh: line 8: autoreconf: command not found
curl -O http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
tar -xzvf m4-1.4.13.tar.gz
cd m4-1.4.13
./configure --prefix=/usr/local
make
sudo make install
cd ..
curl -O http://mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz
tar -xzvf autoconf-2.65.tar.gz
cd autoconf-2.65
./configure --prefix=/usr/local # ironic, isn't it?
make
sudo make install
cd ..
这里你最好重启下终端,以确保autoconf在接下来的脚本中生效
curl -O http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz
tar xzvf automake-1.11.tar.gz
cd automake-1.11
./configure --prefix=/usr/local
make
sudo make install
cd ..
curl -O http://mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz
tar xzvf libtool-2.2.6b.tar.gz
cd libtool-2.2.6b
./configure --prefix=/usr/local
make
sudo make install
4、./configure
5、make
6、make check
7、make install