入口点(_main)未定义 Xcode 6。

16

我简直找不到解决方案!我正在使用Swift。突然间,我遇到了这个错误:

Undefined symbols for architecture i386:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture i386

无论我尝试运行什么模拟器/设备,我仍然会遇到这个问题:

Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64

这是什么?!我已经从我的项目中几乎删除了一切,包括所有框架等等。它还在那里。

请帮助我。


4
我不小心从构建阶段的编译源代码中删除了AppDelegate。 - chrs
9个回答

25

在你的AppDelegate.swift文件中添加以下内容:

import UIKit

@UIApplicationMain

1
这让我找到了答案。我没有将AppDelegate包含到tvOS目标中。谢谢! - Bobjt
1
在我的情况下,我已经从我的AppDelegate类中注释掉了@UIApplicationMain并开始使用自定义的main.swift。问题是我删除了引用,但没有注意到。 - Orgmir
关于@UIApplicationMain@main之间的区别的解释:https://stackoverflow.com/questions/67429098/what-is-the-differnce-between-main-and-uiapplicationmain - undefined

11

另一个导致此问题的原因(不是针对您,而是其他寻找答案的人)是 AppDelegate.swift 没有包含在应用程序目标中的某些原因。我不知道为什么会发生这种情况--我认为这可能是我的用户错误--但没有这个文件,您将收到此错误,并且原因并不明显。确保在应用程序目标中选中该文件的复选框。


7

我曾经遇到过同样的问题,但是我只是忘记在AppDelegate.swift文件的顶部加上@UIApplicationMain标签。


5
我的问题是: “main.m”文件被从项目中删除了。

当我重新定位.xcodeproj文件并在Build Phases下手动重新组织Compile Sources部分时,发生了这种情况。 - A. Petrov

3
我的问题是这样的。我有两个AppDelegate文件。一个是我想删除的原始文件,另一个是我想添加的新文件。我先将新文件添加到项目中,然后再删除旧文件。按照这个顺序会导致链接器错误。当我删除新文件并再次将其添加到项目中时,它就可以正常工作了。谢谢。

2

我曾经遇到过同样的错误,后来发现main.m文件虽然被列在了项目文件列表中,但是在“Target Membership”列表中并没有被勾选。


0
在Xcode 12.3中解决此问题,需要将@main属性添加到AppDelegate中。

0

一些类和框架(如FB SDK)并没有像图片中那样被选中。 因此,我在项目导航器中手动勾选了所有类和框架(仅限.m文件和框架)。enter image description here


0
如果出现此错误,您有两个问题:
  1. 您已注释掉(使用//appleDelegate.swift,您应该取消注释
  2. 您的项目中缺少appleDelegate.swift

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接