我在这里苦苦挣扎,试图使用新版本2.6 Protocol Buffers构建一个简单的“hello world”64位iOS应用程序。我很沮丧,因为我已经使用Metasyntactic's native Objective-C code几年没有任何问题,并发现它鼓励了一个非常好的工作流程。但是现在Apple要求64位应用程序,我发现这个项目还没有更新,当我尝试编译64位时,由于使用了NSInteger,因此存在大量错误。
所以我一直在尝试使用最新的2.6版协议缓冲区,它只支持C ++,并调整我的代码以获得更新的API。我能够得到的最远的是使用gist tutorial by Bennett Smith on Github,但我被困住了,需要帮助。该教程足以构建基础知识,但是让Xcode编译是我遇到问题的地方。
我一直遵循的步骤与教程完全相同。当我写这篇文章时,我正在再次这样做,以确保我捕获所有内容:
Process *Source files with names matching:* `*.proto`
Using *Custom script:*
cd ${INPUT_FILE_DIR}
${SRCROOT}/protobuf-2.6.0/bin/protoc --proto_path=${INPUT_FILE_DIR} ${INPUT_FILE_PATH} --cpp_out=${DERIVED_FILE_DIR}
Output Files
$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).pb.cc
$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).pb.h
创建一个简单的测试协议“test.proto”:
消息版本{ 要求uint32 Major = 1; 要求uint32次要= 2; 要求uint32 BuildNum = 3; }
将此代码添加到AppDelegate.h:
#include "test.pb.h"
这就是它破裂的地方。 “protoc”代明显有效 - 我可以在DerivedSources文件夹中看到生成的文件test.pb.cc和test.pb.h。但是我得到了一个我无法理解的构建错误 - 因为我认为这只是一个基本的C ++ include语句:
#include <string>
...会抛出“找不到''字符串'文件”的错误。
如何解决此问题?
谢谢!