我正在开发一个 iOS 应用程序项目,并将 json-framework 项目添加到工作区。左侧的项目导航器显示了两个项目,构建方案选择器也显示了两个项目的方案。现在我想将 json-framework 项目中的 libjson.a 目标添加为对另一个项目中 iOS 应用程序目标的依赖项。预期的结果是,每当构建应用程序目标时,它都会构建(如有必要)库目标并将应用程序目标链接到它。以下是我尝试执行此操作的方法:
将两者构建为同一方案的一部分。我尝试这样做的方法是编辑我的应用程序的方案,将“libjson.a”添加到方案的“构建”部分,并顺便检查“查找隐式依赖项”。然后我转到我的应用程序目标的目标编辑器,并在“构建阶段”->“将二进制文件与库链接”中,从工作区库列表中选择“libjson.a”。当我随后尝试构建该方案时,我看到它构建了库目标,但构建应用程序目标失败,并出现链接器错误“未找到 -ljson 的库”——这表明它实际上并未发现已构建库。实际上,在项目导航器中,该库的应用程序项目下的条目仍然是红色的,表示该文件不存在。
将 json 目标添加为显式依赖项。为了尝试这个,我不修改构建方案,而是转到我的应用程序目标的目标编辑器,然后单击“目标依赖项”下的添加按钮。工作区中没有来自其他项目的目标显示,所以这是一个非首发。
将 JSON 项目拖到另一个项目中,然后将目标添加为依赖项。这就是我在 Xcode 3 中所做的。在项目导航器中,我抓取库项目并将其拖到应用程序项目上。这会打开通常的“添加文件”窗格,我只需单击“完成”即可将其关闭。现在项目导航器中的库项目有两个条目:一个在顶层,一个在 app 项目下。我现在可以使用目标编辑器将库目标添加为应用程序目标的依赖项,并且可以在链接库阶段链接它而不会出错。但它看起来很糟糕:导航器中有同一个项目的多个条目。有不同的方法可以做到这一点吗?
在同一工作区的不同项目中连接这些目标的“Xcode 4-ish”方式应该被认为是什么?如果同一工作区中的多个项目实际上不能相互交互,这似乎是缺乏的。谢谢,格雷厄姆。