6

我想在我的项目中使用 protobuf( https://code.google.com/p/protobuf/ )

您是否使用 xCode 5 成功编译了 protobuf,请帮忙分享您的经验?

谢谢。

4

2 回答 2

11

您可以通过将以下行添加到您的 Podfile 中,为使用 Cocoapods 的 Xcode 5 项目添加对 Google Protocol Buffers 的支持。

pod 'GoogleProtobuf', '~> 2.5.0'

这会将 C++ 版本的 protobuf 代码放入项目的 Pod 中。它还将在项目protoc的文件夹中添加编译器Pods/GoogleProtobuf/bin/protoc

您可以在项目中创建自定义构建规则,自动将.proto文件转换为.ph.{h,cc}文件。我是这样做的:

将构建规则设置为“处理名称匹配的源文件:*.proto 使用自定义脚本”。该脚本应包括以下内容:

cd ${INPUT_FILE_DIR}
${SRCROOT}/Pods/GoogleProtobuf/bin/protoc --proto_path=${INPUT_FILE_DIR} ${INPUT_FILE_PATH} --cpp_out=${INPUT_FILE_DIR}/cpp

设置输出文件以包括以下内容:

$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.h
$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.cc

您在项目中包含的任何.proto文件现在都将自动转换为 C++,然后作为构建的一部分进行编译。

于 2013-10-19T19:55:48.123 回答
10

如果您不介意自己构建 Google Protobuf,那么使用 Cocoapods 的一个很好的替代方法是在此处运行 bash 脚本。

https://gist.github.com/BennettSmith/7150245

该脚本将生成支持 i386、armv7、armv7s、arm64 和 x86_64 架构的 Google Protobuf 的正确构建。它将生成一个通用的静态库。它还将生成用于 OS X 的 protoc 编译器。

于 2013-10-25T06:33:56.187 回答