什么是Mach-O类型我应该在我的iOS Objective-C项目中使用它?

时间:2017-07-25 10:16:29

标签: ios objective-c xcode xcode8

Xcode中的Build Setting中的Mach-O类型是什么?应该设置什么?

它有这些选项“可执行”“动态库”“捆绑”“静态库”“可重定位目标文件”

我有一个错误“Apple Mach-O链接器错误组”,因为我将它从可执行文件更改为静态库我的错误消失了,我想知道是不是我改变了它?所有这些选项意味着什么,所以我将来不会再面临另一个错误。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

要设置{!this.props.view && <div onClick={this.toggleHidden} className="dropdown-wrapper"> { !this.state.isHidden ? <> {/*needs to be inside parent component*/} <select className="dropdown"> <option value="none"> Redirect to an existing Post... </option> {this.props.sites .filter(site => site.site !== undefined) .map(site => ( <option value={site.site.name} key={site.id}> {site.site.name} </option> ))} </select> <> {/*needs to be inside parent component*/} {emailProvider && <select className="dropdown"> <option key={0} value='none'>None</option> { emailProvider.length && emailProvider.length > 0 && emailProvider.map((eachData, key) => { return ( <option key={key + 1} value={eachData.id}>{eachData.name}</option> ) }) } </select> } </> <button style={{ paddingTop: 14 }} onClick={this.handleClick}>Refresh List</button> </> : null } </div> [Mach-O format],请确定链接器行为

Mach-O Type
  • Framework target -> Build Settings -> Mach-O Type -未链接。用于创建启动程序-ExecutableApplication是默认设置
  • Application target-Bundle-链接的运行时。 iOS现在仅支持loadable bundle,这是生成Testing Bundle target的默认设置。
    Loadable bundle-> System-> Testing Bundletested binary的位置取决于目标,静态或动态二进制文件...
  • Testing Bundle-链接的加载/运行时间。
    • Dynamic Library-Framework target是生成Dynamic Library
    • 的默认设置
  • Dynamic framework-链接了编译时间(构建时间)。
    • Static Library-Static Library target是生成Static Library
    • 的默认设置
    • Static library-Framework target生成Static Library
  • Static framework-链接了编译时间(构建时间)。这是一种Relocatable Object File扩展名。所有Static Library文件将在构建时重新链接,并将生成一个新的单个对象文件。例如,它可以用于.o。使用Symbols hidden by default [About]命令检查很简单
otool

[Vocabulary]
[Framework static vs dynamic]