我应该在iOS Objective-C项目中使用什么Mach-O类型?
Xcode中构建设置中的Mach-O类型是什么?那么应该设置什么呢 它有以下选项“可执行”“动态库”“捆绑”“静态库”“可重定位对象文件” 我有一个错误“苹果Mach-O链接器错误组”,因为我把它从可执行文件改成了静态库。我的错误消失了,我想知道我改了它可以吗?所有这些选项意味着什么,这样我就不会在未来面临另一个错误。 更多细节我应该在iOS Objective-C项目中使用什么Mach-O类型?,ios,objective-c,xcode,xcode8,Ios,Objective C,Xcode,Xcode8,Xcode中构建设置中的Mach-O类型是什么?那么应该设置什么呢 它有以下选项“可执行”“动态库”“捆绑”“静态库”“可重定位对象文件” 我有一个错误“苹果Mach-O链接器错误组”,因为我把它从可执行文件改成了静态库。我的错误消失了,我想知道我改了它可以吗?所有这些选项意味着什么,这样我就不会在未来面临另一个错误。 更多细节 和马赫-O型 这在我的生活中有一些反映。另外,MH_预加载0x5,MH_内核0x4,MH_动态链接器0x7 设置Mach-O类型确定链接器的行为 Framework
和马赫-O型 这在我的生活中有一些反映。另外,
MH_预加载
0x5,MH_内核
0x4,MH_动态链接器
0x7
设置Mach-O类型
确定链接器的行为
Framework target -> Build Settings -> Mach-O Type
0x2(可执行文件
/mh_execute
)-未链接。用于创建可启动程序-mh_execute
,应用程序
<代码>应用程序目标是默认设置应用程序扩展-小部件
0x8(Bundle
.Bundle)可加载的Bundle-运行时链接。iOS现在只支持mh\u Bundle
,默认设置是生成测试捆绑包目标
可加载捆绑包
->系统
->测试捆绑包
。测试二进制文件
测试包的位置取决于目标、静态或动态二进制
0x6(动态库
.dylib或无)-加载/运行时链接。mh\u dylib
- 使用
-框架目标
是生成动态库
动态框架
- 使用
(静态库
.a)-编译时间(构建时间)链接。静态库
- 使用
-静态库目标
是生成静态库
静态库
- 使用
-框架目标
生成静态库
静态框架
- 使用
0x1(可重定位对象文件
.o)-编译时间(构建时间)链接。这是最简单的形式。它是创建可执行、静态或动态格式的基础。可重定位,因为变量和函数没有任何特定地址mh_Object
otool
确定二进制文件是否为动态文件非常有用
otool -h <path_binary>
//e.g.
otool -h "/Users/alex/Desktop/projects_experiments/ios/LibraryAndFramework/BuildCustom/UtilsSwift/UtilsSwiftFramework.framework/UtilsSwiftFramework"
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
0xfeedfacf 16777228 0 0x00 6 30 3488 0x00100085
otool-h
//e、 g。
otool-h“/Users/alex/Desktop/projects\u experiments/ios/LibraryAndFramework/BuildCustom/UtilsSwift/utilsswiftfframework.framework/utilsswiftfframework”
马赫割台
magic cputype cpusubtype caps文件类型ncmds sizeofcmds标志
0xfeedfacf 16777228 0 0x00 6 30 3488 0x00100085
filetype
是一个关键点-6-0x6-动态库