Google Protocol Buffers 2.6 iOS - 无法使其正常运行

时间:2014-11-11 17:35:34

标签: c++ ios xcode 64-bit protocol-buffers

我在这里苦苦挣扎,试图使用新版本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编译是我遇到问题的地方。

我一直遵循的步骤与教程完全相同。当我写这篇文章时,我正在再次这样做,以确保我捕获所有内容:

  1. 获取脚本,构建,然后观察bin,include和lib文件夹是否正确创建[pass]
  2. 在Xcode 6.1中创建一个新的Xcode iOS Master-Detail应用程序
  3. 将步骤1中生成的protobuf-2.6.0文件夹移动到我的Xcode项目文件夹
  4. 添加自定义构建规则:
  5. 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

    1. 将“lib”文件夹拖到我的项目中。这将三个库添加到项目中“Build Phase”的“Link Binary With Libraries”部分。
    2. 将“$(SRCROOT)/protobuf-2.6.0/include”添加到“构建设置”下的“页眉搜索路径”
    3. 创建一个简单的测试协议“test.proto”:

      消息版本{     要求uint32 Major = 1;     要求uint32次要= 2;     要求uint32 BuildNum = 3; }

    4. 将此代码添加到AppDelegate.h:

    5. #include "test.pb.h"

      这就是它破裂的地方。 “protoc”代明显有效 - 我可以在DerivedSources文件夹中看到生成的文件test.pb.cc和test.pb.h。但是我得到了一个我无法理解的构建错误 - 因为我认为这只是一个基本的C ++ include语句:

      #include <string>

      ...会抛出“找不到''字符串'文件”的错误。

      如何解决此问题?

      谢谢!

0 个答案:

没有答案