在保留某种巫师的服务后,我想出了如何让 Thrift 与 iPhone/iPad 一起工作(或者至少让它编译好)。
首先,您想使用此命令而不是从 wiki 获取 Objective-c 文件:
svn co http://svn.apache.org/repos/asf/incubator/thrift/trunk/lib/cocoa/src/ thrift-cocoa
然后,通过转到 New Project,选择 Framework & Library 和 Cocoa Framework 来创建一个新的 Xcode 项目。单击创建并将其保存在不错的位置。右键单击目标并选择添加 -> 新目标。选择 Cocoa Touch,然后选择静态库。给它起个好听的名字。在 info 中转到目标的 Build 选项卡并将 Base SDK 更改为 iPhone Device(我使用的是 3.2,但您可以使用任何版本)并将 Architectures 更改为 Standard (armv6 armv7) 或 Optimized (armv7)。在 General 选项卡下添加 Foundation 和 Cocoa 框架。
将您从 svn 存储库中获得的所有文件和文件夹拖到项目中的 Classes 文件夹中。选中复制项目框并选中两个目标旁边的框。分别从静态库的 Copy Headers 和 Compile Sources 文件夹中删除 TSocketServer.h 和 .m。您现在可以构建静态库(和框架可选)。
打开您要在其中使用 Thrift 的项目,然后在 info 中转到目标的 General 选项卡。将您刚刚创建的静态库添加到链接库列表中。它应该命名为 libYOUR_TARGET_NAME.a。在 build 选项卡下,转到 Header Search Paths 并将路径添加到您刚刚创建的 Thrift 项目并选中递归框。
最后,您只需要更改 Thrift 生成的代码中的导入语句,只需删除括号并将它们替换为引号即可。您现在可以再次构建您的 iPhone 项目。