protobuf在各个平台下编译好痛苦!!! 各种失败!! 经过两天的努力终于成功了!!!所以有必要记录下,以方便会他人会用到(网上查阅了很多资料, 很是感激那些作者)
去https://code.google.com/p/protobuf/downloads/list下载版本protobuf-2.5.0.tar.bz2, 然后解压 如图
为了解决ios平台下可能的名字空间冲突, 切换到src/google/protobuf下,运行下面的命令
- sed-i''-e's/namespace\google/namespace\google_public/g'$(find.-name\*.h-typef)
- sed-i''-e's/namespace\google/namespace\google_public/g'$(find.-name\*.cc-typef)
- sed-i''-e's/namespace\google/namespace\google_public/g'$(find.-name\*.proto-typef)
- sed-i''-e's/google::protobuf/google_public::protobuf/g'$(find.-name\*.h-typef)
- sed-i''-e's/google::protobuf/google_public::protobuf/g'$(find.-name\*.cc-typef)
- sed-i''-e's/google::protobuf/google_public::protobuf/g'$(find.-name\*.proto-typef)
新建一个cocos2dx工程以后测试用。
在cocos2dx工程的Classes目录中新建目录pb, protobuf_base。 pb用来放proto转换后的.cc和.h文件; protobuf_base目录下放置protobuf必须的头文件及各平台下的库文件。按如下截图建立各个目录
下面一步步来编译各个环境
1. Windows下 直接打开vsprojects下的protobuf工程文件, 有些vs版本可能会提示对项目方案的一些更改,点击确定。
然后右键protobuf, 生成, 之间可能会有些错误, 不用管,是一些google的测试文件,无视之!
在debug目录下会生成4个重要的文件protoc.exe,libprotobuf.lib, libprotobuf-lite.lib,libprotoc.lib
其中protoc.exe是用来生成.h和.cc文件的。 将这4个文件拷贝到Classes/protobuf_base/lib/win32下。
2.Android下的编译
将下载好的protobuf源码拷贝一份到cocos2dx工程的Classes目录中, 重新命名为protobufxx(临时编译Android用, 编译好后将会删除)