0

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

我想知道我们可以在我们的静态库中嵌入 eaaccessory 框架吗?这样我们库的用户就不必在项目中添加 eaaccessory 框架。

我注意到的另一件奇怪的事情是,即使没有将 eaaccessory 框架添加到我的库项目中,我的静态库也可以完美地编译和链接。

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

4

2 回答 2

0

不可以。Apple 提供的库是动态链接的,不能静态编译到您的项目中。

于 2014-08-04T15:59:13.407 回答
0

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

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

于 2014-08-04T16:00:01.557 回答