我想在我的项目中使用 protobuf( https://code.google.com/p/protobuf/ )
您是否使用 xCode 5 成功编译了 protobuf,请帮忙分享您的经验?
谢谢。
我想在我的项目中使用 protobuf( https://code.google.com/p/protobuf/ )
您是否使用 xCode 5 成功编译了 protobuf,请帮忙分享您的经验?
谢谢。
您可以通过将以下行添加到您的 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++,然后作为构建的一部分进行编译。
如果您不介意自己构建 Google Protobuf,那么使用 Cocoapods 的一个很好的替代方法是在此处运行 bash 脚本。
https://gist.github.com/BennettSmith/7150245
该脚本将生成支持 i386、armv7、armv7s、arm64 和 x86_64 架构的 Google Protobuf 的正确构建。它将生成一个通用的静态库。它还将生成用于 OS X 的 protoc 编译器。