iOS未定义的静态库中的eaaccessory符号

时间:2014-08-04 14:28:31

标签: ios static frameworks xcode5 eaaccessory

我创建了一个ios静态库,它基本上使用外部附件框架与自定义蓝牙设备通信,我使用的是iOS 7 + Xcode 5。 当我尝试在我的测试项目中使用这个库时,我会发现eaaccessory的未知符号的链接器错误。如果我将eaaccessory框架添加到我的测试项目中,则每个工作都按预期工作。

我想知道我们可以在静态库中嵌入eaaccessory框架吗?因此,我们图书馆的用户不必在项目中添加eaaccessory框架。

我注意到的另一个奇怪的事情是我的静态库编译和链接完全正常,即使没有为我的库项目添加eaaccessory框架。

最后我的问题是我必须在我的测试项目中添加eaaccessory框架以正确链接,无论我是否将eaaccessory添加到我的库项目中。

2 个答案:

答案 0 :(得分:0)

没有。 Apple提供的库是动态链接的,无法静态编译到您的项目中。

答案 1 :(得分:0)

当链接器构建静态库时,它不必解析库中的所有符号。如果链接到静态库,它会将该库中的符号导入到它正在构建的库中。它不会从框架中导入符号,因为它们是在运行时动态加载的。

您无法在静态库中嵌入系统框架的某些部分。很可能将函数从系统框架导入静态库而不是在运行时加载它们会破坏它们。