最近我下载了Xcode 9,并创建了一个样例iPhone应用程序,但该应用无法构建,因为它显示以下错误:
ld: entry point (_main) undefined. for architecture x86_64
我在网上搜索了相关内容,并尝试了一些方法,如删除派生数据、重新启动Xcode等,但问题仍未得到解决。
有人遇到过类似的问题吗?
最近我下载了Xcode 9,并创建了一个样例iPhone应用程序,但该应用无法构建,因为它显示以下错误:
ld: entry point (_main) undefined. for architecture x86_64
我在网上搜索了相关内容,并尝试了一些方法,如删除派生数据、重新启动Xcode等,但问题仍未得到解决。
有人遇到过类似的问题吗?
添加 @main
解决了问题。
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
...
}
@UIApplicationMain
在 Swift 5.3
之前使用。
@UIApplicationMain
和@main
之间的区别的解释:https://stackoverflow.com/questions/67429098/what-is-the-differnce-between-main-and-uiapplicationmain - undefined发现“AppDelegate”不是“target”成员的一部分。
我曾经遇到过同样的问题。以下是我解决它的方法: 选择你的项目,然后转到“Build Setting” -> 搜索Mach-O类型更改为-> Bundle。 希望这能帮助你!
在我的情况下,我在AppDelegate.swift
中缺少了@UIApplicationMain
。将其添加到class AppDelegate
之前,我的应用程序再次开始构建。
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
...
}
Swift 5
确保你的 appDelegate 类开头有 @main。
AppDelegate.swift
类并检查是否已经写入@UIApplicationMain
。如果没有,请在这个类中在UIKit "@UIApplicationMain"
导入下面添加这行代码。@UIApplicationMain
解决问题。它的内部实现可以自行完成,这种情况下,您不需要添加 @UIApplicationMain
。只需创建一个名为 main 的 swift 文件,并将以下代码放入其中即可按预期工作。import UIKit
UIApplicationMain(CommandLine.argc,
UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer<Int8>.self, capacity: Int(CommandLine.argc)), nil, NSStringFromClass(AppDelegate.self))
如果您在构建框架时遇到此错误,则在构建设置 > Mach-O 类型下选择动态库。
最好的祝愿。