2016-06-06 9 views
1

Wenn ich meine app bauen gibt mir es zufällig diesen Fehler:Was bedeutet dieser Fehler in Xcode?

ld: entry point (_main) undefined. for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ich weiß nicht wirklich, wie es zu erklären, weil ich keine Ahnung, was es bedeutet, und ich habe keine Ahnung, woher sie kommen können .

Hier ist mein Github Link: https://github.com/nneeranjun/Map-Exercise.git

+0

Dieser Fehler tritt nicht auf, wenn Sie Ihre App ausführen. Das ist ein Linker-Fehler beim Erstellen Ihrer App. – rmaddy

Antwort

2

Sie eine main.m Datei fehlen, die normalerweise automatisch erstellt, wenn Sie ein neues Projekt in Xcode starten.

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

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

Nachdem Sie die Datei erstellt haben, fügen Sie es dem Projekt (Menü Datei auf „Dateien hinzufügen zu‚Projektname‘):

Für eine typische allgemeine Cocoa Touch-Anwendung, es sieht wie folgt aus .

Sobald Sie die Datei dem Projekt hinzugefügt haben, müssen Sie sicherstellen, dass sie im Ziel enthalten ist.Wählen Sie die Datei im Projektnavigator und gehen Sie in das Menü Ansicht und wählen Sie Dienstprogramme-> Dateiinspektor anzeigen Überprüfen Sie die Einstellung "Zielmitgliedschaft" und stellen Sie sicher, dass die Datei im Ziel für Ihre Anwendung enthalten ist.

+1

Die Frage ist mit iOS markiert. 'NSApplicationMain' wird nicht so gut funktionieren. :) – rmaddy

+0

Hoppla! Sollte überprüft haben. Ich ersetze es durch ein Kopieren/Einfügen aus einem iOS-Projekt. –

+0

Ich habe die Datei main.m hinzugefügt und sie läuft immer noch mit einem Fehler. –

0

Erstellen Sie eine main.m-Datei.
Fügen Sie den folgenden Code hinzu.

#import <UIKit/UIKit.h> 

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

Es ist nicht erforderlich, eine Antwort zu posten, die vorhandene Antworten einfach dupliziert. – rmaddy

+0

Ich kann nicht anders, wenn eine andere Person es im gleichen Zeitintervall gepostet hat. – barryjones