Xcode错误:" _main",引自:主要可执行文件的隐式条目/开始

时间:2015-03-05 09:28:30

标签: ios xcode clang

我收到以下错误,这似乎是来自底层的事情" _main"。

Ld /Users/jianglin/Library/Developer/Xcode/DerivedData/TownHall_iPhone-bdlgipvgaapgjhglhromfvcubbxz/Build/Products/Debug-iphonesimulator/TownHall\ iPhone.app/TownHall\ iPhone normal i386
    cd "/Users/jianglin/Desktop/TownHall iPhone"
    export IPHONEOS_DEPLOYMENT_TARGET=8.1
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk -L/Users/jianglin/Library/Developer/Xcode/DerivedData/TownHall_iPhone-bdlgipvgaapgjhglhromfvcubbxz/Build/Products/Debug-iphonesimulator -F/Users/jianglin/Library/Developer/Xcode/DerivedData/TownHall_iPhone-bdlgipvgaapgjhglhromfvcubbxz/Build/Products/Debug-iphonesimulator -filelist /Users/jianglin/Library/Developer/Xcode/DerivedData/TownHall_iPhone-bdlgipvgaapgjhglhromfvcubbxz/Build/Intermediates/TownHall\ iPhone.build/Debug-iphonesimulator/TownHall\ iPhone.build/Objects-normal/i386/TownHall\ iPhone.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-AFNetworking -lPods-Masonry -lPods-SDWebImage -framework CoreGraphics -framework Foundation -framework ImageIO -framework MobileCoreServices -framework Security -framework SystemConfiguration -framework UIKit -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.1 -lPods -Xlinker -dependency_info -Xlinker /Users/jianglin/Library/Developer/Xcode/DerivedData/TownHall_iPhone-bdlgipvgaapgjhglhromfvcubbxz/Build/Intermediates/TownHall\ iPhone.build/Debug-iphonesimulator/TownHall\ iPhone.build/Objects-normal/i386/TownHall\ iPhone_dependency_info.dat -o /Users/jianglin/Library/Developer/Xcode/DerivedData/TownHall_iPhone-bdlgipvgaapgjhglhromfvcubbxz/Build/Products/Debug-iphonesimulator/TownHall\ iPhone.app/TownHall\ iPhone

Undefined symbols for architecture i386:
  "_main", referenced from:
     implicit entry/start for main executable
     (maybe you meant: _OBJC_IVAR_$_PostTableViewCell._mainTextView, _OBJC_IVAR_$_ConfirmationViewController._mainLabel , _OBJC_IVAR_$_SignInViewController._mainLabel , _OBJC_IVAR_$_SignUpViewController._mainLabel )
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:16)

我检查了你的项目。问题很简单,在您的项目中没有main.m文件。我想你不小心删了那个。

将新的.m文件添加到项目中,将其命名为main

并将以下代码添加到其中:

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

同样在您的项目中,info.plist也缺失,因此您需要添加一个新的。

答案 1 :(得分:4)

将@UIApplicationMain添加到AppDelegate

答案 2 :(得分:1)

我的情况非常相似,但略有不同。解决方案部分是由@ Midhun-MP的答案提示的。

在我的实例中,我添加了我的应用程序的tvOS版本。但是,在添加新目标之后,未在目标成员资格下选择main.m(因此,有关Undefined symbols for architecture x86_64: "_main"的警告消息)。检查了关闭和bam - 我是GTG。

谢谢@ Midhun-MP。

main.m

答案 3 :(得分:0)

如果我是正确的,您正在使用模拟器来运行该应用程序。要在iOSSimulator上运行应用程序,需要i386架构的支持。错误显示为您的二进制框架链接不支持i386架构。这可能是框架&#39; SDWebImage&#39; (我猜)。请尝试在真实设备中运行应用程序而不是模拟器,或尝试下载具有i386入口点的框架。

另一种可能性是:验证&#34; AppDelegate&#34;存在于已编译的源中。希望这会对你有帮助..

答案 4 :(得分:0)

在进行大规模升级后,我遇到了这个问题,很烦人的是,在Github上看到如此多的答案,建议RN用户启动一个新项目来解决此问题。

首先,这是我在遇到此错误时想到的构建设置以及应设置的设置:

应用目标的构建阶段

将二进制文件与库链接

  • JavaScriptCore.framework
  • libPods-app_name.a

编译源

  • AppDelegate.m
  • main.m

应用目标的构建设置

链接 OTHER_LDFLAGS

  • ObjC
  • lc ++
  • lz

如果设置看起来不错,但在构建时仍然出现错误,则下一步是检查主文件本身。

Main.m 文件位于 ios / app_name 文件夹中,并且在文件本身中,您可以找到所引用的main方法。如果此文件存在问题(丢失,损坏),则可以使用下面的代码重新创建它:

main.m 0.23.1-0.62.0 from Upgrade Helper

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

int main(int argc, char * argv[]) {
  @autoreleasepool {
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  }
}

我真的希望这对以后的人有所帮助。

答案 5 :(得分:0)

我遇到了这个问题,试图归档Mac Catalyst应用(Swift 5 / Xcode 11.5),直到尝试归档工作正常并且能够通过My Mac成功运行/构建。

从来没有人能够找到导致此问题最终得以解决的根本原因,但是将我所有的根级项目文件(包括AppDelegate.swift)移到一个组中就解决了该问题,并允许我成功存档

之前:

Project.xcodeproj
|--- Project
    |--- AppDelegate.swift
    |--- SceneDelegate.swift
    |--- Assets.xcassets
    |--- ViewControllers
        |--- ViewController.swift

之后:

Project.xcodeproj
|--- Project
    |--- AppDelegate
        |--- AppDelegate.swift
        |--- SceneDelegate.swift
        |--- Assets.xcassets
    |--- ViewControllers
        |--- ViewController.swift