【问题标题】:Linking to a static library that requires a frameworks链接到需要框架的静态库
【发布时间】:2011-07-08 08:46:36
【问题描述】:

我有一个主项目和几个较小的子项目。较小的项目包含一个自包含的 Cocos2d 应用程序和一个仅包含与主项目相关的类的静态库(子项目都使用 Cocos2D 框架)。主项目依赖于静态库。我认为这种方法在理论上是合理的,但在实践中它是行不通的。

我看到的症状如下:当代码作为主项目的一部分执行时,预处理器值起作用。当我运行子项目的应用程序时,它会按预期运行。

我在主目标中设置了-all_load 链接器选项。这是因为子项目中的类只在 nib 文件中提及。如果没有-all_load,类将在主目标之外“优化”,因为编译器错误地确定代码是多余的。

我已将所有子项目链接到他们需要的 .frameworks。

这是可以修复的还是这种方法注定要失败?如果没有静态库,我还能如何管理这些项目?其他开发人员在子项目上工作,静态库方法可以防止我们互相干扰。

更新

回读那个问题让我觉得我应该早点休息一下!这个问题并没有很好地解释这个问题(或者说很有意义!)。问题涉及到如何使用子项目来组织代码。我现在几乎解决了这个问题。等我完全解决后,我可能会写一篇博文。

【问题讨论】:

  • 抱歉,我不清楚什么不适合您...

标签: objective-c ios xcode static-libraries build-script


【解决方案1】:

由于静态库最终“嵌入”到您的可执行文件中,因此您无需担心它们的链接,就像您需要可执行文件一样。

只需设置项目依赖项,以便首先构建依赖框架(这样 .framework/Headers 文件夹会正确填充),然后是库,然后是您的应用程序。我已经在多个应用中成功地做到了这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 2022-12-30
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多