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

swiftAI

1个回答

写回答

angel_cityz

2025-06-18 21:35

+ 关注

AI
AI

使用Xcode 9开发应用程序时,可能会遇到一个错误提示:ld:入口点(_mAIn)未定义。这个错误通常发生在x86_64架构上。这篇文章将介绍这个问题的原因,并提供解决方案。同时,我们还将通过一个案例代码来说明如何解决这个问题。

问题的原因

当我们在Xcode 9中创建一个新的项目时,默认情况下,项目的架构设置为x86_64。这意味着项目将在64位的处理器上运行。然而,如果我们的代码中缺少一个名为_mAIn的入口点函数,系统将无法找到应用程序的入口点,从而引发该错误。因此,我们需要手动添加一个_mAIn函数来解决这个问题。

解决方案

要解决ld:入口点(_mAIn)未定义的错误,我们需要按照以下步骤操作:

步骤1:打开Xcode 9并选择项目。

步骤2:在项目导航器中,选择项目的主目标。

步骤3:在主目标的设置中,选择“Build Settings”选项卡。

步骤4:在“Architectures”下拉菜单中,选择“Other”选项。

步骤5:在弹出的对话框中,手动输入“$(ARCHS_STANDARD)”并点击“Done”按钮。

步骤6:确保“Valid Architectures”设置中包含了“x86_64”。

步骤7:在项目导航器中,找到并打开mAIn.m文件。

步骤8:在文件中添加以下代码:

objective-c

int mAIn(int argc, char * argv[]) {

@autoreleasepool {

return UIApplicationMAIn(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}

}

步骤9:重新编译并运行项目。现在,您应该不再遇到ld:入口点(_mAIn)未定义的错误。

案例代码

以下是一个简单的示例代码,演示了如何解决ld:入口点(_mAIn)未定义的错误。

objective-c

#import <UIKit/UIKit.h>

int mAIn(int argc, char * argv[]) {

@autoreleasepool {

return UIApplicationMAIn(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}

}

通过添加这段代码,我们为应用程序提供了一个入口点函数,使系统能够正确地找到应用程序的入口。

在使用Xcode 9开发应用程序时,我们可能会遇到ld:入口点(_mAIn)未定义的错误。这个错误在x86_64架构上特别常见。为了解决这个问题,我们需要手动添加一个_mAIn函数来作为应用程序的入口点。通过按照上述步骤操作,并使用提供的案例代码,我们可以成功解决这个问题,并使应用程序能够在Xcode 9中正常运行。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号