【问题标题】:Integrating a C project in the iPhone SDK在 iPhone SDK 中集成 C 项目
【发布时间】:2011-12-08 06:48:02
【问题描述】:
这是我第一次做这种项目,如果问题很愚蠢,请道歉。
我有一个关于将 C 项目与 iPhone SDK 中的项目一起使用的问题。我已经将 C 项目拖放到 Xcode 中的 iPhone 项目中(所以它出现在下面的屏幕截图中)。
sjeng.h 是 GameEngine.xcodeproj 中的一个文件,但是当我尝试包含头文件时,我不仅收到错误消息,而且它正在寻找的文件似乎是大写的,而 import 语句不是。
有谁知道问题出在哪里?
谢谢!
【问题讨论】:
标签:
iphone
c
objective-c
dependencies
【解决方案1】:
您可以通过拖放或 Project/Add to project... 命令将文件添加到 XCode 项目中(两种方式完成相同的操作)。
问题似乎是您已将“GameEngine.xcodeproj”项目文件添加到“测试”项目中,但您没有包含实际构成“GameEngine”项目的文件(例如 sjeng.h)。那是行不通的。
有两种不同的方法可以解决这个问题:
1) 将“GameEngine”中的所有 .c 和 .h 文件添加到“Test”,然后直接将它们编译为 iPhone 应用程序的一部分。这有时是最直接的方法,但就模块化和代码重用而言,它并不是最佳实践。
2) 让“GameEngine”项目构建一个框架(也许它已经设置为构建为一个框架),然后将该框架添加到您的“测试”项目中。显然,您需要使用具有适当设置(模拟器与设备)的 iPhone SDK 构建“GameEngine”框架,以匹配您构建应用程序其余部分的方式。在这种情况下,您将有一个两步构建过程:首先打开“GameEngine”项目并构建框架,然后打开您的“测试”项目并构建它。
【解决方案2】:
我相信您需要将源文件添加到您的项目中(Project/Add to project...),而不是拖放 .xcodeproj 文件。如果您只想引用文件而不复制它们,您可以取消选中“将项目复制到目标组的文件夹(如果需要)”。请务必包含所有必需的源文件(例如 sjeng.h 等)。
确保将文件添加到 iPhone 项目中的正确目标中。