在厌倦了无数的 Match-O 链接器错误之后,我想知道这件事是什么意思。我想知道这些事情背后的概念,而不是反复试验的解决方案。具体来说,我想知道两者之间的区别:
- 可执行文件
- 动态库
- 捆
- 静态库
- 可重定位目标文件
这些是我在链接部分单击 Mach-O 类型设置时出现的选项。一些小的定义或一些指向适当内容的链接也可以。
在厌倦了无数的 Match-O 链接器错误之后,我想知道这件事是什么意思。我想知道这些事情背后的概念,而不是反复试验的解决方案。具体来说,我想知道两者之间的区别:
这些是我在链接部分单击 Mach-O 类型设置时出现的选项。一些小的定义或一些指向适当内容的链接也可以。
Mach-O是 Mach 目标文件格式的缩写,是一种用于可执行文件、目标代码、共享库、动态加载代码和核心转储的文件格式。对于 unix 用户来说,这很像a.out
,但有改进。这是 Mac OS X 和 iPhone OS 库中用于可执行文件的格式。
如您所知,iOS 设备(iPhone、iPad 等)具有不同的架构 ARMv6(iPhone 2G + 3G、iPod Touch)和 ARMv7(iPhone 3GS、iPod Touch 2G + 3G),但 Xcode 中使用的模拟器主要在 i386 平台上运行。这意味着库客户端必须为模拟器和设备设置单独的目标。单独的目标复制了大部分信息,仅在包含的静态库中有所不同。因此,如果您遇到 Mach-O 链接器错误,这意味着 xcode 无法链接到该目标设备的库之一;结果编译失败。
现在你的定义 -
根据苹果文档,
检查此以获取更多详细信息构建 Mach-O 文件和Xcode 构建设置参考