何时在 Xcode 上链接框架/库?

Posted

技术标签:

【中文标题】何时在 Xcode 上链接框架/库?【英文标题】:When to link frameworks/libraries on Xcode? 【发布时间】:2019-11-22 09:55:25 【问题描述】:

正如标题所说,我们什么时候需要在 Xcode 上手动添加框架/库?

当我说手动是通过 AppTarget -> General -> Linked Frameworks and Libraries -> + 或替代 AppTarget -> Build Phases -> Link Binary with Libraries -> + .

我创建了一个安装了两个 pod 的新 ios 项目,所以此时 Linked Frameworks and Libraries/Link Binary with Libraries 上列出的唯一框架是由 cocoapods 生成的框架。 然后我在 swift 文件中添加了import AVFoundation,存档,一切都成功了。

问题是包含链接内容的列表从未改变,项目导航器上的框架组也没有改变。所以我想知道我们什么时候应该使用它?

基于此,我假设在旧项目中从 Frameworks 组中删除所有内容是安全的,这些内容也将从列表中删除(当然离开 Pods 框架)应该没问题。我做到了,存档,导出,一切都很顺利。 这是我的假设,但我想与其他人确认。

也许这对于旧版本的 Xcode 或 ObjC 是必需的...我记得那天我在使用 ObjC 时不得不这样做

【问题讨论】:

【参考方案1】:

您必须在操作系统中链接 Apple 未提供的框架和库。因为像“AVFoundation”这样的框架是操作系统提供的动态库。

如果您制作了自己的框架/库或使用其他框架/库,那么您必须将它们链接并嵌入到您的 xcode 项目中。

从 Xcode 5 开始,LLVM 和 Clang 提供了自动链接库和框架的选项。默认值是 true。 这就是为什么 Apple 系统框架(默认框架)不必显式链接到 Xcode 项目的原因。 请参阅构建设置中的 Apple Clang 语言模块中的选项。 希望对你有帮助

【讨论】:

这完全有道理,这是我从一开始的假设,但我想与其他人确认。非常感谢!

以上是关于何时在 Xcode 上链接框架/库?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Mac OS X 上链接静态库

在 xcode 4.5.1 上链接库 OpenCV 2.4.2

如何使用cmake在mac上链接OpenGL相关库?

在 Linux 上链接 c++ 库

无法在 qt creator (linux) 上链接共享库

无法在 qt creator 上的 c++ 上链接 realsense 库