安装ProtocolBuffer2.2过程:
需要安装autoconf 和automake 安装过程如下:
在终端中输入:
curl -O http://mirrors.kernel.org/gnu/m4/m4-latest.tar.gz
tar -xzvf m4-latest.tar.gz
cd m4-latestcd
./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
make
sudo make install
cd ..
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
--------------------------------------------------
将ProtocolBuffers-2.2.0-Source-3.tar解压
终端进入 进入该目录
执行
./configure --prefix=/usr/local
make
sudo make install
protoc --version
git clone https://github.com/qzix/protobuf-objc
默认会在当前运行目录下创建protobuf-objc目录。
进入该目录,并执行:
./autogen.sh
./configure -prefix=/usr/local
make
sudo make install
----------------------------------------------遇到的问题:
---------------------------------------------2、make的时候出现错误:
google/protobuf/message.cc:130:60: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'
return ParseFromZeroCopyStream(&zero_copy_input) && input->eof();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_istream;
^
google/protobuf/message.cc:135:67: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'
return ParsePartialFromZeroCopyStream(&zero_copy_input) && input->eof();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_istream;
^
google/protobuf/message.cc:175:16: error: implicit instantiation of undefined template 'std::__1::basic_ostream<char, std::__1::char_traits<char> >'
return output->good();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:110:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_ostream;
^
解决办法:找到文件src/google/protobuf/message.cc 在文件的第一个#include之上的一行,加入
#include <istream>
继续运行make ,即成功通过。
----------------------------------------
2016.3.31更新
git clone https://github.com/qzix/protobuf-objc
以前的github地址失效了