2014-03-28 61 views
0

我正在运行一个使用EAAccessoryManager的应用程序,该应用程序只能通过ExternalAccessory框架使用。然而,它编译并运行时没有将ExternalAccessory包含在链接的框架列表中。它也不会被任何其他目标加载到Xcode中。这怎么可能?我很迷惑。如何在没有框架的情况下使用框架类运行代码?

我很好奇,因为我有一个加载静态库,还引用EAAccessoryManager另一个项目,并在该情况,应用程序将不能编译,与错误Undefined symbols for architecture i386退出。这是我所期望的。什么可以解释差异?

+0

查看静态链接和动态链接之间的区别,你会发现你的答案。我敢打赌,一旦它达到试图使用该功能的部分,就会出现问题。 – borrrden

+0

不,应用程序使用EAAccessoryManager中的类没有问题,即使ExternalAccessory没有列在要链接的框架中。 – theory

+0

那就是奇怪的行为。你必须得到比我更了解的人的回答。 – borrrden

回答

0

在生成设置,“苹果LLVM 5.1 - 语言 - 模块”的部分,“链接框架自动”已启用:

enter image description here

这是一个新的功能,而读我从来没有看到发现this post on @import(感谢@RhythmicFistman提示!)。当我将该设置更改为“否”时,出现我期望的链接器错误。

0

可能是链接器构建设置而不是链接构建阶段。

+1

糟糕,我打算发表这个评论。愚蠢的响应web版本。 –

相关问题