it-swarm.com.de

Apple Mach-O Linker Fehler beim Kompilieren für das Gerät

Ich habe gerade ein Upgrade auf xcode 4.0 durchgeführt und kann nicht mehr auf dem iPhone bereitgestellt werden. Ich bekomme einen Apple Mach-O-Linker-Fehler. Der Simulator funktioniert trotzdem.

    Ld /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel normal armv7
    cd /Users/yveswheeler/iParcel
    setenv IPHONEOS_DEPLOYMENT_TARGET 3.2
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -Arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -L/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -F/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -filelist /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel.LinkFileList -dead_strip -all_load -ObjC -lxml2 -miphoneos-version-min=3.2 -framework UIKit -framework CoreGraphics -framework QuartzCore /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a -framework AddressBook -lz.1.2.3 -framework Foundation -framework CFNetwork -framework MobileCoreServices -framework SystemConfiguration -framework MessageUI -framework AudioToolbox -o /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel

arm-Apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a: No such file or directory
arm-Apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a: No such file or directory
arm-Apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a: No such file or directory
arm-Apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a: No such file or directory
arm-Apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a: No such file or directory
arm-Apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a: No such file or directory
arm-Apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a: No such file or directory
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 failed with exit code 1
233
CodeVomit

Das Problem war, dass in XCode 4 die Abhängigkeiten nicht die Architektureinstellungen des Hauptprojekts annehmen, wie dies zuvor in XCode 3 der Fall war. Ich musste alle meine Abhängigkeiten durchgehen und sie für die korrekte Architektur einstellen.

20
CodeVomit

Hier ist eine dauerhafte Lösung. Im Allgemeinen kann das Überschreiben eines Projekts dazu führen, dass dies zu Problemen führt.

-UPDATE - Clang-Fehler - Mach-O-Linker-Fehler

In einigen Fällen zeigt das Fehlerprotokollfenster den .xctest-Fehler an, um ihn zu beheben

-> Wählen Sie Ihr Projekt aus

-> Wählen Sie daneben (kurz vor der Registerkarte Allgemein) Ihre ProjektTestdatei aus dem Dropdown-Menü aus

-> Es gibt eine Option (wie ProjNameTests)

-> Wählen Sie in Host Application Ihr Projekt nur dann aus der Dropdown-Liste aus, wenn es benutzerdefiniert ist

ERLEDIGT!

enter image description here

Alte Methode gelöscht

214

Ich hatte das gleiche Problem und das Problem war, dass ich versehentlich eine .m-Datei anstelle von .h in eine Implementierungsdatei importiert habe - hoffe es hilft

195
Daniel

Ich bin gerade in dieselbe Ausgabe geraten.

Die Lösung (für mich) = Überprüfen Sie Ihre Frameworks. 

In meinem Fall hatte ich CoreData-bezogene Klassen ohne "CoreData.framework" hinzugefügt. Durch das Hinzufügen wurde das MACH_O-Problem behoben.

73
Dante Cesa

Öffnen Sie die .xcworkspace-Datei nicht .xcodeproj. Ich wiederhole die geöffnete .xcworkspace-Datei. Alle Ihre Fehler gehen weg.

56
mahi

Re: Problem wie im Titel beschrieben:

Nur für den Fall, dass jemand das Offensichtliche verpasst hat ...

Ich bin auf diesen Fehler gestoßen, nachdem ich eine neue Version von Xcode4 installiert und vorhandene Dateien in ein neues Projekt gezogen habe. Ich hatte nicht festgestellt, dass das Kontrollkästchen "Zu Zielen hinzufügen" im Dialogfeld "Optionen zum Hinzufügen von Dateien auswählen" nicht aktiviert war. Mein Versäumnis in Targets> Build Phases> Compile Sources wurde behoben.

36
cate

Menü> Produkt> Reinigen, das hat es funktioniert. Ich bin mir bei allen anderen nicht sicher. Ich habe ein Bild hinzugefügt, um es zu zeigen. 

enter image description here

31
dnaatwork.com

Bizarre Fehler. Für mich habe ich Xcode einfach gereinigt und neu gestartet, und das Problem ist verschwunden.

29
p.pad

Fix: Build-Einstellungen> Bitcode aktivieren> Nein  enter image description here

26
Sebastián Lara

Keine dieser Antworten hat mir geholfen. Dann habe ich versucht, Cocoapods neu zu installieren:

pod deintegrate

pod install

Problem gelöst!

20
Johannes

Ich hatte dasselbe und es geschafft, es zu lösen. 

In xcode preferences ändern location tab den Wert unter build location in "Place build products in locations specified by targets"

13
Wolfert

Ich hatte einige Zeit mit diesem Problem zu kämpfen, und in meinem Fall wurde es schließlich die Build-Einstellung unter Suchpfaden mit dem Namen FRAMEWORK_SEARCH_PATHS. Es hat mir geholfen, dass ich die Schaltfläche "Ebenen" ausgewählt habe, die mein Projekt, mein Ziel und die Einstellung "Gelöst" zu vergleichen schien. Ich habe gesehen, dass meine Zieleinstellung irgendwie die Standardeinstellung von "$ (vererbt)" überschrieben hat, und der überschriebene Wert war der, der von XCode als Einstellung "aufgelöst" wurde. Als ich die Überschreibung entfernte, die in diesem Fall die 3.2-SDK angab, gingen die Linker-Fehler weg - ebenso wie kürzlich erschienene Warnungen über Klassen, in denen ich Post-4.0-Methoden aufrief.

Über diese Warnungen - Ich habe sie nie gesehen, bevor ich das MessageUI-Framework für eine kürzlich vorgenommene Änderung hinzugefügt habe. Ich vermute, weiß aber nicht mit Sicherheit, dass XCode beim Hinzufügen dieses Frameworks etwas Kluges unternommen hat, indem er diese Überschreibung zu meinem Ziel hinzugefügt hat. Ich habe es an keiner Stelle explizit gemacht. Bei den Warnungen ging es beispielsweise um die URLByAppendingPathComponent-Methode von NSURL, die erst in SDK 4.0 angezeigt wurde. Vor dem Hinzufügen des MessageUI-Frameworks habe ich diese Warnung nie erhalten. Und da ich den Override entfernt habe, bekomme ich sie nicht mehr.

13
tigerswim19

Ich hatte dieses Problem und durch den Import von QuartzCore wurde es behoben.

11
jmosesman

Das Ändern von "Nur aktive Architekturen erstellen" in "Ja" in "CordovaLib.xcodeproj" -> "Build-Einstellungen" hat den Trick für mich ausgemacht. Früher lief die App auf dem Simulator, aber nicht auf dem Gerät. 

8
Whizkid747

Ich hatte das gleiche Problem: Ich hatte versehentlich eine .m-Datei gelöscht, während sich .h im Projekt befand .. Das Problem verschwand, wenn ich die .m-Datei wiederhergestellt habe.

7
Misha Karpenko

Möglicherweise müssen Sie Ihre Build-Einstellungen aktualisieren.

Überprüfen Sie die iOS-Zielversion und die Prozessorarchitekturen, da Sie möglicherweise nicht über die alten SDKs mit XCode 4 verfügen.

In den Build-Einstellungen wird möglicherweise «Missing SDK» angezeigt. Ändern Sie das zu was auch immer gilt.

7
Macmade

Vergewissern Sie sich, dass Sie keinen bestimmten Suchpfad für das Framework angegeben haben. Wenn Sie zu den Informationen zum Ziel gehen und nur die Einträge für den Suchpfad des Frameworks entfernen, sollten die Standardeinstellungen für Ihre angegebene Implementierungsversion verwendet werden.

6
Grady Player

Wenn Sie CoreData verwenden und XCode zum Generieren von NSManagedObject-Unterklassen für Ihre Entitäten verwenden, stellen Sie sicher, dass Sie nur eine für jede Entität generieren.

Mein Problem war, dass mehrere NSManagedObject-Unterklassen für dieselbe Entität generiert wurden (und sie in verschiedenen Ordnern abgelegt wurden). 

Ich habe gerade alle gelöscht und die Unterklassen von NSManagedObject neu generiert.

5
Flaviu

Ich versuche nur, eine category class-Datei zu erstellen und habe dieses seltsame Problem bekommen ... und schließlich ....

Falscher Weg zum Erstellen einer Kategorieklasse, die das Problem verursacht:

New File -> Cocoa Touch -> Objective-C class, dann änderte ich den Namen der Dateien in Kategorieklasse wie name .. (d. h. OriginalClass_CategoryName.h/m in OriginalClass+CategoryName.h/m und auch den Inhalt der Datei).

Richtiger Weg hier:

New File -> Cocoa Touch -> Objective-C category, und es werden automatisch Dateien generiert (OriginalClass+CategoryName.h/m).

Oh, wie blöd ich bin !!

5
Kjuly

Ich hatte genau das gleiche Problem, nur weil ich zwei gleiche Konstanten in verschiedenen Klassen hatte. Dieses Problem kann auch auftreten, wenn Sie eine .m-Datei und keine .h-Datei importieren 

5
Adela

Um auf die Liste der seltsamen Sachen hinzuzufügen, die dieses Problem behoben haben ...

Ich hatte einige const CGFloat-Variablen in einer globalen Header-Datei

const NSInteger  globalInteger1 = 2;
const NSInteger  globalInteger2 = 3;

In dem Moment, als ich diese entfernte, war alles in Ordnung :)

5
sherlock

Ich hatte das gleiche Problem und habe es gelöst. In meinem Fall verursachte die Einstellung "Architekturen" das Problem. In meiner Projektdatei, auf der Registerkarte Build Settings (Einstellungen festlegen), wurden Architekturen auf armv6 gesetzt. Ich habe es in Standard (armv7) geändert, reinige und baue. Dann hat es funktioniert!

4
Kim Jin

In meinem Fall bestand das Problem darin, dass unterschiedliche Architekturen unter verschiedenen Zielen angegeben wurden. Ich habe mein Anwendungsziel mit armv6, armv7 und cocos2d mit Standard (amrv7) erstellt. Gehen Sie in die Build-Einstellungen und stellen Sie sicher, dass Ihre Architekturen für alle Ziele übereinstimmen.

4
ChrisP

Nicht sicher, ob es verwandt ist, aber da Sie etwa drei20 Bibliotheken betreiben, sollten Sie diesen Beitrag auf der Website überprüfen: http://three20.info/article/2011-03-10-Xcode4-Support

4
Rog

Das hat mir einen Trick gebracht:

Gehe zu 

1) Produkte> sauber

2) Windows> Projekte

3) Wählen Sie Ihr Projekt aus und klicken Sie auf " Löschen " abgeleitete Daten

4) Produkte> Build

4
Nilesh Pol

Ich habe dieses Problem zu komisch gelöst! 

Gehe zu Target > Build Phases > Binäres mit Bibliotheken verknüpfen :

Entfernen Sie alle Ihre Frameworks und fügen Sie sie erneut hinzu! 

Ich hoffe es funktioniert für Sie! 

4
Rudi

Für die schnelle Sprache ...

Ich erhalte den Fehler "ld: Datei zu klein (Länge = 0) ...." 

In meinem Fall säubere ich einfach das Projekt und baue es dann neu auf.

Schritte:-

1) gehe zu Projekt -> Reinigen

2) gehe zu Projekt -> Build

Hoffe das hilft..

4
Niks

Wenn Sie NSObject mit demselben Namen definiert haben:

NSObject *notUniqueObj;

selbst in 2 verschiedenen Dateien (wenn Sie eine Datei in eine andere importieren), erhalten Sie eine Fehlermeldung. Geben Sie ihnen unterschiedliche Namen.

3
Omkar Jadhav

Ich konnte diesen Fehler durch Bearbeiten von "Bibliothekssuchpfaden" beheben. 

Es ist in erster Linie aufgetaucht, weil ich ein paar Ordner verschoben habe, und das hat meinen Build-Einstellungen zwei verschiedene Suchpfade gegeben, weil sie automatisch Ihren Build-Einstellungen hinzugefügt werden, wenn Sie eine Bibliothek/ein Framework verknüpfen immer entfernt 

Wenn Sie also eine verknüpfte Bibliothek/ein anderes Framework in ein anderes Verzeichnis verschieben und erneut verknüpfen, müssen Sie den Suchpfad manuell bearbeiten.

Möglicherweise können Sie dem ausweichen, indem Sie die Bibliothek/das Framework entfernen, bevor Sie es verschieben, aber ich habe das nicht getestet.

Code Signinig !!!

Ich hatte dieses Problem auch -"Linker-Befehl mit Exit-Code 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf zu sehen)"

mein Problem war, dass ich versucht habe, die App auf einem echten Gerät auszuführen, und ich habe vergessen, den AbschnittCode Signingauf der Registerkarte Build Settings zu konfigurieren.

3
Aviram Net

Ich habe versehentlich eine neue Konstante mit demselben Namen wie eine vorhandene Konstante in einer anderen Datei definiert, und dies hat mich bei Verwendung von xCode 4.3.1 verursacht. xCode hat sich nicht beschwert, aber der Compiler mag das nicht.

3
moliveira

Bei mir wurde versehentlich eine Implementierungsdatei ".m" anstelle der entsprechenden Headerdatei ".h" importiert. Sobald ich feststellte, dass der Projektaufbau wieder normal war.

3
owenfi

für mich bestand das Problem darin, dass ich die gleichen Funktionen zweimal geladen hatte. Entfernen Sie -ObjC aus Build-Einstellungen > Linking > Andere Linker-Flags .

3
Agu Dondo

Eine Möglichkeit: Aktivieren Sie "Dead Code Stripping" in den Xcode 4-Build-Einstellungen.

Eine andere Möglichkeit: Es könnte sein, dass Sie für ein Framework, das zuvor GCC verwendet hat, LLVM verwendet haben. Wenn Sie zu GCC (oder LLVM GCC) zurückkehren, werden diese Warnungen möglicherweise gelöscht.

3
Enchilada

Ich habe aus Versehen versucht, einen 64-Bit-Simulator zu kompilieren, der mit meinen CocoaPods nicht einverstanden ist

2
Alan

Bei mir waren Architekturen Fehler beim Laufen auf dem Gerät in XCode 4.5.x. 

XCode 4.5 unterstützt armv6 nicht mehr, daher war mein Fix:

Ich habe gerade alle Ziele in allen Bibliotheken (Three20Core, Three20Common usw.) und libThree20 bearbeitet: In Build-Einstellungen wurden nur "armv7" und "armv7s" in "Architectures" und "Valid Architectures" ausgewählt.

In meinem Fall hatte ich eine Klassendatei dupliziert! Sie haben es gefunden, indem Sie das untere Suchfeld in der rechten Seitenleiste von Xcode verwenden

2
Mazen Kasser

Mein Fix für das gleiche Problem: Hinzufügen der "anderen Linker-Flags" in "Project" und nicht in "Targets" . Also habe ich es in "Targets" verschoben, es sollte nicht in "Project" stehen.

2
Idan Moshe

Die Lösung dieses Problems ist sehr einfach Gehen Sie einfach in das Verzeichnis, in dem das Projekt installiert ist, und öffnen Sie die Datei Mit der Erweiterung ".xcworkspace".

Das wird das Problem lösen. 

2
Ahmed Samir

Ich verwende xcode 5. In meinem Fall muss ich mein "Deployment Target" ändern. Es wurde zuvor als 3.0 festgelegt und ich ändere es in 7.0. Nun ist die Fehlermeldung weg. Um Ihr "Deployment Target" , Zu ändern, folgen Sie den Schritten:

  • Gehen Sie zu Ihrem "Projektnamen" (oben links)
  • Gehen Sie zu Ihren "Targets" (Mitte des Bildschirms)
  • Gehe zu "General"
  • "Bereitstellungsinformationen"
  • "Bereitstellungsziel"

Ändern Sie die aktuelle iOS-Version. Vielen Dank.

2
Tulon

Wenn Sie eine Mach-O Linker-Warnung oder eine Fehlermeldung erhalten, die besagt, dass das Verzeichnis nicht gefunden wurde, suchen Sie den Pfad dieses Verzeichnisses. Wenn dies nicht der Fall ist, laden Sie die neueste Version von RestKit herunter und legen Sie den Ordner manuell ein.

1
Kyle Clegg

Ich habe versehentlich zwei Kopien derselben Unterklasse eines UITableViewControllers hinzugefügt. Durch das Entfernen eines Dateisatzes wurde der Fehler behoben.

1
smileBot

Mein Problem war, dass ich Variablen nicht als extern in einer meiner Header-Dateien definiert habe und sie in der C-Datei neu deklariert wurden.

1
Maverick

Wenn Sie XCode verwendet haben, um eine benutzerdefinierte NSManagedObject-Klasse zu erstellen, diese hinzuzufügen und eine neue Datei für die benutzerdefinierte Klasse zu generieren, überschreibt XCode manchmal Ihre alte Klasse nicht und Sie bleiben mit zwei derselben Dateien, aber in unterschiedlichen Verzeichnissen. Finden Sie die alte Datei und löschen Sie sie.

Das Problem könnte jedoch etwas anderes sein. 

0
Jared Moskowitz

In meinem Fall war die Ursache eines solchen Apple Mach-O Linker-Fehlers die Einbeziehung der Quellcodedatei (.m) in das Ressourcen-Bundle-Ziel.

Stellen Sie sicher, dass die kürzlich erstellte .m-Datei nicht in einem Bundle enthalten ist: Wählen Sie die Datei im Projektnavigator aus, öffnen Sie den Dateiinspektor und stellen Sie sicher, dass das Kontrollkästchen für das Ressourcenpaket im Abschnitt Target Membership deaktiviert ist.

0
pjuzeliunas

In meinem eigenen Fall hatte ich doppelte Deklarationen einiger Schlüssel. Ich habe einige NSString-Konstanten mit dem Schlüsselwort extern deklariert und in zwei verschiedenen Klassendateien genau dasselbe gemacht. Als ich eines davon entfernte, verschwand der Fehler.

extern NSString *const CFDataStatusKey;
extern NSString *const CFDataErrorKey;
extern NSString *const CFDataReasonKey;
extern NSString *const CFDataChannelsKey;

Diese wurden in .h- und .m-Dateien der beiden Klassen deklariert bzw. initialisiert. Durch das Entfernen eines Duplikats wurde das Problem behoben. Hoffentlich hilft das

0
user5284310

Installieren und öffnen Sie mit CocoaPod zuerst den Arbeitsbereich und nicht das Projekt, wie auf der CocoaPod-Website angegeben.

$ pod install

$ open YOUR_PROJECT_NAME.xcworkspace
0
Hassan Rahman

Ich musste einfach Dateien mit einer main()-Methode erstellen und Xcode war darüber nicht glücklich.

0
Curlip

Dieser Fehler kann auch auftreten, wenn Sie zwei verschiedene Versionen derselben Bibliothek importiert haben. Entfernen Sie in diesem Fall einfach die ältere Version und behalten Sie nur eine Version bei. Magic wird für Sie funktionieren.

0

Wenn Sie Xcode 7 oder höher verwenden, führen Sie einfach ein Produkt aus -> reinigen. Das hat bei mir funktioniert.

0
Daniel

Ich hatte das gleiche Problem. Als ich einige Dateien .h und .m in mein Projekt zog, zeigte Xcode diesen Fehler clang: Fehler: Linker-Befehl schlug mit Exit-Code 1 fehl (verwenden Sie -v, um den Aufruf anzuzeigen) während dem Rennen.

Später entdeckte ich, dass ich diese .h & .m bereits in meinem Xcode-Projekt unter einem anderen Unterordner habe. Also habe ich das Extra .h und .m gelöscht, mein Projekt und es funktioniert jetzt.

clang: Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf zu sehen) Dieser Fehler ist aus verschiedenen Gründen vorhanden. Aus diesem Grund hat diese Frage so viele Antworten. Sie müssen nur sehen und prüfen; In welchen Fall fallen Sie hinein?.

0
Jasmeet

Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:

Gehen Sie zu den Projekteinstellungen und zur Registerkarte Build. Suche nach"Andere Linker-Flags"

Doppelklicken Sie auf die Linker-Flags für Release und Change:

 ${TARGET_BUILD_DIR}/libCordova.a to ${BUILT_PRODUCTS_DIR}/libCordova.a

Machen Sie dasselbe fürDebug Cleanundbuildarchive erneut.

0
Tuttoilmondo

Mein Problem war, dass ich in mehreren class.m-Dateien einen NSString namens TAG erstellt hatte und den Wert von TAG auf den String-Namen jeder Klasse festgelegt hatte (z. B. NSString * TAG = HWGuiControl). Ich hatte es so gemacht, dass es dann leicht war, meinen NSLog-Anweisungen den Namen der Klasse voranzustellen. (Ich habe dieses System mit großem Erfolg in Android eingesetzt, ideal für die Analyse des Programmflusses 2 Jahre später). Bei der Bereitstellung auf einem Gerät funktioniert das alles bestens. Wenn es jedoch an der Zeit ist, ein Archiv für die Verteilung zu erstellen, kann der Linker offenbar nicht mit dem NSString namens TAG konkurrieren, der in mehreren Dateien erscheint. Die Änderung der Namen von TAG in HWGTAG usw. führte dazu.

0
dasboos

in meinem Fall habe ich gerade die .h .m-Datei von einem Ordner in einen anderen Ordner verschoben, und der Ordner war nicht vorhanden. Also habe ich einen Ordner zuerst im Finder erstellt und dann die Datei im Finder verschoben. Dann füge ich den Ordner hinzu und entferne die Referenz des verschobenen Felds in einen anderen Ordner aus dem Projekt

0
Khurram Iqbal

ich denke, die beste Antwort ist, in Dateien importieren zu sehen, einige Importe haben ein Problem.

beispiel: include #import "file.m" oder include externe Datei.h 

...

0
user2165491

Versuchen Sie es mit Unity-Build-Einstellungen-Player-Einstellungen-SDK-Version: Geräte-SDK anstelle von Simulator-SDK

Ich hatte einen solchen Fehler und das hat ihn behoben

0
Stormy

In meinem Fall habe ich include .m-Datei, weshalb der Compiler diese Art von Fehler anzeigt.

sie sollten den neuesten Dateiimport überprüfen, bei dem es sich nicht um die .m-Datei "Sometime i" handelt.

0

Ich möchte noch einen Grund mitteilen, als ich diesen Fehler erhielt: 

Ich hatte den Projektnamen in Project Navigator (in Xcode 6.1.1) durch einen einfachen Klick geändert und mein Projekt konnte nicht kompiliert werden. Ich habe den Projektnamen wieder in alten Namen geändert, das Projekt wurde gerade gebaut. Sehr, sehr seltsam, aber ja, ich habe mich dem gestellt. Ich hoffe diese Informationen helfen. 

0
skypirate

Ich hatte vor einer Minute das gleiche Problem. was mich hierher geführt hat, was nicht geholfen hat. Aber ich habe herausgefunden, was das Problem war, und es behoben. das Problem war, dass ich in meiner Headerdatei eine Instanz der struct-Klasse namens trig_node [SIZE] deklariert hatte. 

mein Header ...

struct TrigNode
{
    float msin;
    float mcos;
    float mtan;
}trig_node[SIZE];

in meiner .cpp-Datei habe ich eine Funktion, die auf diese Instanz zugreift und die Antwort zurückgibt.

float cos_table_(float deg)
{
    uint n = ((SIZE/DEGRE)*deg);
    return trig_node[n % DEGRE].mcos;
}

was ist, was zu meinem Linking-Fehler führt ..__ Um das zu beheben, platziere ich die Instanz der Trig-Tabellenklasse "trig_node [SIZE]" in der .cpp-Datei, die den Fehler löschte. nun sah der neue fix so aus

mein Header ...

struct TrigNode
{
    float msin;
    float mcos;
    float mtan;
};

meine .cpp-Datei trig_node [GRÖSSE]

float cos_table_(float deg)
{
    uint n = ((SIZE/DEGRE)*deg);
    return trig_node[n % DEGRE].mcos;
}
0
kanthonye

Ich musste sicherstellen, dass mein Framework mit einem ausgewählten Simulator erstellt wurde, um mein Projekt mit einem Simulator zu erstellen (mein Projekt verwendet natürlich das Framework). Dasselbe gilt für das Bauen auf meinem iPhone. Alles muss synchron sein, nicht sicher warum, aber es behebt das Problem.

Ich hoffe das hilft jemandem.

0
jer_francis

Ich habe das gleiche Problem beim Exportieren des FMDB-Moduls in xcode 4.6 . Später habe ich in meiner Dateiliste eine fmdb.m gefunden, die dieses Problem verursacht hat ..__ Nach dem Entfernen aus dem Projekt funktioniert es einwandfrei

0
winari

Bitte gehen Sie zu Ihrer Arbeitsbereichseinstellung und nehmen Sie die folgenden Änderungen vor:

Workspace Setting:
   Build System:
     Legacy BuilPer-User


 Per-User Workspace
  DerivedData:
    Workspace relative location



Build System 
    Use User Setting
0
Andy Rubin

Ich habe dieses Problem nach dem Import eines Frameworks bekommen. Unter 'Build Phases' wurde der Name des Frameworks rot hervorgehoben. Ich habe das Framework erneut hinzugefügt und das Problem wurde gelöst.

0
yoeriboven

Ich habe bei diesem Problem festgestellt, dass ich in meinem XCODE-Projekt zwei Referenzen habe. Löschen Sie einfach die andere Referenz. Hoffe das hilft

0
Rick Royd Aban

Ich habe das Problem behoben, indem ich den Mach-O-Typ unter den Verknüpfungsabschnitten der Erstellungseinstellungen von Nothing in Executable geändert habe.

0
Menan Vadivel

Mein spezifischer Fehler war:

ld: entry point (_main) undefined. for architecture armv7

Das hätte offensichtlich sein sollen, aber es liegt daran, dass main.m Nicht in Compile Sources Unter Build Phases Aufgenommen wurde.

0
Jacksonkr