ld:入口点(_main)未定义。对于架构x86_64:Xcode 9

时间:2017-10-09 14:28:39

标签: ios swift xcode

最近我下载了Xcode 9并创建了一个示例iPhone应用程序,但该应用程序无法构建,因为它显示以下错误:

  

ld:入口点(_main)未定义。对于架构x86_64

我在网上搜索了同样的内容并尝试了一些方法,比如删除派生数据,重新启动Xcode但仍无法解决问题。

有人遇到过类似的问题吗?

11 个答案:

答案 0 :(得分:31)

发现“AppDelegate”不属于“目标”会员资格。

答案 1 :(得分:9)

添加@UIApplicationMain解决了这个问题。

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
...
}

答案 2 :(得分:6)

我也遇到过同样的问题。这是我如何解决它: 选择您的项目,然后转到Build Setting-> Search Mach-O Type更改为-> Bundle 。希望对您有帮助!

答案 3 :(得分:4)

就我而言,我错过了@UIApplicationMain中的AppDelegate.swift。在class AppDelegate之前添加它,我的应用再次开始构建

答案 4 :(得分:2)

请打开您的AppDelegate.swift类,并检查是否编写了@UIApplicationMain。如果没有,则在导入UIKit "@UIApplicationMain"下方的此类中添加此行代码。

像这样: @UIApplicationMain 类AppDelegate:UIResponder,UIApplicationDelegate { ... }

答案 5 :(得分:1)

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
  ...
}

Swift 5

确保在 appDelegate 类的开头有 @main。

答案 6 :(得分:0)

确保“ AppDelegate”是“目标”成员身份的一部分。

点击 AppDelegate -> 属性检查器-> 检查目标成员身份

enter image description here

答案 7 :(得分:0)

添加@UIApplicationMain可以解决此问题。以及它在内部所做的事情,您都可以自己做。在这种情况下,您无需添加@UIApplicationMain。只需创建一个主要的快速文件名,然后将以下代码放入其中。它将按预期工作。

import UIKit

UIApplicationMain(CommandLine.argc, 
    UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer<Int8>.self, capacity: Int(CommandLine.argc)), nil, NSStringFromClass(AppDelegate.self))

答案 8 :(得分:0)

对于框架(动态库)

如果在构建框架时遇到此错误,请在 Build Settings(机器设置)> Mach-O Type (机器类型)下选择 Dynamic Library (动态库)。

在Xcode版本11.6(11E708)上进行了测试

最好。

答案 9 :(得分:0)

就我而言,@main 已被评论。

您的 AppDelegate 应该是这样的:

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    //
}

答案 10 :(得分:-1)

只需将此代码添加到appDelegate

var window: UIWindow?