首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该如何管理Xcode工作区中项目之间的依赖关系?

我应该如何管理Xcode工作区中项目之间的依赖关系?
EN

Stack Overflow用户
提问于 2011-03-30 16:34:15
回答 6查看 54K关注 0票数 59

我正在开发一个iOS应用程序项目,并将json-framework项目添加到工作区。左侧的项目导航器显示了这两个项目,构建方案选择器也显示了这两个项目的方案。现在,我想添加json-framework项目中的libjson.a目标,作为对另一个项目中iOS应用程序目标的依赖。预期的结果是,每当构建应用程序目标时,它都会构建(如果需要)库目标,并将应用程序目标链接到它。以下是我尝试过的方法:

  • 将两者构建为同一方案的一部分。我尝试这样做的方式是编辑我的应用程序的方案,将'libjson.a‘添加到方案的'Build’部分,顺便说一句,“查找隐式依赖项”是选中的。然后我转到我的应用程序目标的目标编辑器,在“构建阶段”->“将二进制文件与库链接”中,我从工作区库列表中选择了'libjson.a‘。当我随后尝试构建该方案时,我看到它构建了库目标,但是构建应用程序目标失败,并出现链接器错误"Library not found for -ljson“-这表明它实际上还没有发现库已经构建。实际上,在项目导航器中,库的应用程序项目下的条目仍然是红色的,这表明该文件不存在。
  • 将json目标添加为显式依赖项。要尝试这一点,我不修改构建方案,但转到我的应用程序目标的目标编辑器,并单击“target Dependencies”下的add按钮。工作区中没有来自其他项目的目标,因此这是一个non-starter.
  • Drag,将JSON项目添加到另一个项目中,然后将目标作为依赖项添加。这就是我在Xcode3中所做的,在项目导航器中,我抓取库项目并将其拖到应用项目上。这将打开通常的“添加文件”窗格,我只需单击“完成”即可将其关闭。现在,项目导航器中的库项目有两个条目:一个在顶层,一个在app项目下。我现在可以使用目标编辑器将库目标添加为应用程序目标的依赖项,并且可以在链接库阶段对其进行链接而不会出错。但它看起来是坏的:导航器中的同一项目有多个条目。有没有不同的方法呢?

在同一工作区的不同项目中连接这些目标的“Xcode4-ish”方式应该被认为是什么?如果同一工作空间中的多个项目实际上不能相互交互,那么它似乎是缺乏的。谢谢,格雷厄姆。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-03-30 20:26:36

我刚刚设置了一个测试项目,与您在版本3中描述的非常相似,方法是创建一个新的工作区,并将两个Xcode项目拖入其中,如下所示。

如果您已经拥有同级项目,则可以将其删除。

就我所见,点击build on this,它就能正常工作了。

我想,如果你有两个项目,就会有内部路径混乱,我倾向于在“查看”->实用工具“->”文件检查器“中摆弄位置设置,看看有什么效果。

另一件可以尝试的事情是在Xcode的"Preferences…“中设置路径。->“源树”,并以这种方式引用它们,如下所述:Easy, Modular Code Sharing Across iPhone Apps: Static Libraries and Cross-Project References

HTH。安迪W。

票数 24
EN

Stack Overflow用户

发布于 2011-04-05 03:31:32

我设法让工作区中的项目之间的依赖关系像我在这里描述的那样工作:http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/

不幸的是,我找不到一种方法来让Xcode发现隐式依赖关系,或者像广告那样索引构建中的所有内容。我找到了解决这两个问题的办法,但我希望随着Xcode4的成熟,需要更少的手动配置。

票数 9
EN

Stack Overflow用户

发布于 2011-04-21 15:25:14

我也想问同样的问题,认为我自己的解决方案不可能是正确的。但我没有在这里看到它,它似乎确实起作用了。显然,XCode 4还在开发中。:)

我有一个包含两个项目的工作区:一个静态库和一个使用库的应用程序。这些项目是兄弟姐妹。每个项目都有自己的方案,并且每个方案都被设置为只构建一个目标。换句话说,我向工作区添加了两个项目,仅此而已。

要添加静态库作为应用程序的依赖项,我只需将libomething.a产品从库项目(Project Navigator)拖到应用程序目标的"Link Binary with Libraries“列表中。就这样。现在,当我构建应用程序时,首先构建库项目,然后进行链接。有趣的是,当我修改应用程序的方案以使用不同的配置(例如,Release而不是Debug)时,库是使用相同的配置构建的。

所以它是有效的,显然这里有一些自动的依赖检查正在进行。但这感觉不对劲。同样,模态方案编辑器/管理器也是如此,并且在项目导航器中缺少工作区对象...我从未想过我会这么说,但Visual Studio UI (bleh)要清晰得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5483909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档