繁体   English   中英

链接到需要框架的 static 库

[英]Linking to a static library that requires a frameworks

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

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

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

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

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

更新

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM