加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 在Xcode项目目标构建设置中,什么是Mach-O Type?

发布时间:2020-12-14 20:05:44 所属栏目:百科 来源:网络整理
导读:在厌倦了众多Match-O链接器错误之后,我想知道这个东西的意思.而不是试错解决方案,我想知道这些事情背后的概念.具体我想知道的区别是: 可执行文件 动态库 捆绑 静态库 可重定位对象文件 这些是当我点击链接部分的Mach-O Type设置时显示的选项.一些小的定义或
在厌倦了众多Match-O链接器错误之后,我想知道这个东西的意思.而不是试错解决方案,我想知道这些事情背后的概念.具体我想知道的区别是:

>可执行文件
>动态库
>捆绑
>静态库
>可重定位对象文件

这些是当我点击链接部分的Mach-O Type设置时显示的选项.一些小的定义或一些链接到适当的内容也可以.

解决方法

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无法链接到该目标设备的一个库;因此编译失败.

现在你的定义 –

>可执行程序 – 编译机器目标程序准备以二进制格式运行.>动态库 – 在运行时链接 – 具有对动态库的引用的程序将在启动(或按需)时加载和链接库.>软件包 – 捆绑标识符可让iOS和OSX识别您应用程序的任何更新.它使它在应用程序中独一无二.>静态库 – 文件在构建时链接.代码被复制到可执行文件中.程序中未引用的库中的代码被删除.只有静态库的程序在运行时没有任何依赖关系.>可重定位对象文件 – 是动态库的另一个单词.当链接到动态库时,根据库在内存中的加载位置来计算内部函数的地址.它们是“可重定位的”,因为所包含的功能的地址在链接时没有确定. (在静态库中,在链接时间期间计算地址.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读