使用xCode 5编译protobuf

时间:2013-10-18 07:52:14

标签: ios7 xcode5 llvm-clang protocol-buffers

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

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

感谢。

2 个答案:

答案 0 :(得分:10)

如果你不介意自己构建Google Protobuf,那么使用Cocoapods的一个很好的选择就是在这里运行bash脚本。

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

此脚本将生成适当的Google Protobuf版本,支持i386,armv7,armv7s,arm64和x86_64架构。它将生成一个通用的静态库。它还将生成用于OS X的protoc编译器。

答案 1 :(得分:9)

您可以使用Cocoapods将对Google协议缓冲区的支持添加到Xcode 5项目中,方法是将以下行添加到您的Podfile中。

pod 'GoogleProtobuf', '~> 2.5.0'

这会将protobuf代码的C ++版本放入到项目的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 ++,然后作为构建的一部分进行编译。