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

Posted

技术标签:

【中文标题】ld:入口点(_main)未定义。对于架构 x86_64:Xcode 9【英文标题】:ld: entry point (_main) undefined. for architecture x86_64 : Xcode 9 【发布时间】:2017-10-09 14:28:38 【问题描述】:

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

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

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

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

【问题讨论】:

应用是用另一个 xcode 创建的吗? 没有。但我也用新的 xcode 打开了旧项目,它们运行良好.. 【参考方案1】:

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

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate 
...

【讨论】:

【参考方案2】:

发现“AppDelegate”不是“目标”成员的一部分。

【讨论】:

您能否详细说明一下。我无法得到你确定的内容。 耶稣。不敢相信这是问题 @user6159419 他的意思是在 XCode 中,在项目导航器中单击您的项目,然后转到 Build Phases,然后转到 Compile Sources 并确保 AppDelegate 包含在 Compile Sources 中 点击AppDelegate->转到文件检查器->签入目标成员 通过点击加号图标在编译源中添加 AppDelegate.swift 在您的目标项目中【参考方案3】:

我也遇到过同样的问题。这是我修复它的方法: 选择您的项目,然后转到 Build Setting -> Search Mach-O Type Change to -> Bundle .希望它会有所帮助!

【讨论】:

【参考方案4】:

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

【讨论】:

由于旧笔记本电脑(因此卡在 Catalina 上),我正在尝试将 Big Sur(等 Xcode 和 Macbook Pro)反向移植到 Macbook Pro(2012 年中)上的 Catalina,它处于不稳定状态两个开发平台。这是最后一个构建(链接器)问题。【参考方案5】:
@main
class AppDelegate: UIResponder, UIApplicationDelegate 
  ...

斯威夫特 5

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

【讨论】:

【参考方案6】:

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

类似这样: @UIApplicationMain 类 AppDelegate: UIResponder, UIApplicationDelegate ...

【讨论】:

【参考方案7】:

添加@UIApplicationMain 以解决此问题。除了它在内部做的事情,你也可以自己做同样的事情。在这种情况下,您不需要添加@UIApplicationMain。只需创建一个 swift 文件名并将其放入其中。它将按预期工作。

import UIKit

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

【讨论】:

【参考方案8】:

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

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

【讨论】:

【参考方案9】:

对于框架(动态库)

如果您在构建框架时遇到此错误,请选择 Build Settings > Mach-O Type 下的 Dynamic Library

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

最好的。

【讨论】:

【参考方案10】:

只需在 appDelegate 中添加此代码

var window: UIWindow?

【讨论】:

编辑您的答案并插入更多内容,以便清楚。【参考方案11】:

在我的情况下,@main 被评论了。

你的AppDelegate 应该是这样的:

@main
class AppDelegate: UIResponder, UIApplicationDelegate 
    //

【讨论】:

【参考方案12】:

就我而言,我意外删除了我的 appDelegate 文件 :)

【讨论】:

以上是关于ld:入口点(_main)未定义。对于架构 x86_64:Xcode 9的主要内容,如果未能解决你的问题,请参考以下文章

UITest 失败,错误为 'ld: entry point (_main) undefined。对于架构 x86_64'

pod firebase 到 Xcode 的错误

链接器错误:ld:未找到架构 x86_64 的符号

ld:未找到架构 x86_64(领域)的符号

ld:未找到框架架构 x86_64 的条纹

C++ 库编程错误:ld:未找到架构 x86_64 的符号