google的官网目前只支持C++、java、pyhon,虽说网络上还有object-c的
但是安装时总有各种问题,所以直接下载官网的包最新版protobuf-2.5.0:http://code.google.com/p/protobuf/downloads/list
2.
拷贝protobuf-2.5.0/src/google 整个目录至项目中
并再把protobuf-2.5.0/config.h文件拷到项目中
3.
删除google目录中含有test字样的所有文件
参考:http://stackoverflow.com/questions/10277576/google-protocol-buffers-on-ios
4. Build Setting 中Header Search
Paths 改变头文件引用的路径为本目录 递归
5.
编译中遇到tr1的错误 删除含有tr1的字串
主要在config.h中
6.
删除其中一些引用测试文件的include
#include
7. 动态编译生成proto类文件 Builduild
Rules中添加编译脚本:
cd "$INPUT_FILE_DIR"
//转到当前被编译的文件目录
/usr/local/bin/protoc
--cpp_out="$DERIVED_FILES_DIR"
"$INPUT_FILE_BASE.proto" // protoc
为之前protobuf-2.5.0
解压安装生成的工具,注意改工具所在的路径,安装完一般在/usr/local/bin/protoc
$DERIVED_FILES_DIR
为xcode为每个项目编译时临时生成的一个数据文件目录,可以打印出来看下
只能编译输出到此目录,不能到当前项目根目录
不然编译会报错
cp
"$DERIVED_FILES_DIR/$INPUT_FILE_BASE.pb.h"
"$INPUT_FILE_DIR/$INPUT_FILE_BASE.pb.h"
cp
"$DERIVED_FILES_DIR/$INPUT_FILE_BASE.pb.cc"
"$INPUT_FILE_DIR/$INPUT_FILE_BASE.pb.cc"
//将生成的两个文件拷贝到项目根目录下
注意这些个脚本的写法
build setting中添加如下:
Problem solved. I used "-lstdc++" flag to "Other Linker Flags" and
"libz.dylib" library to "Link Binary With Libraries".
百度云有demo
网络上志同道合,我们一起学习网络安全,一起进步,QQ群:694839022