Ich entwickle eine Anwendung in Xcode.
Wenn ich versuche zu erstellen, tritt dieser Fehler auf:
ld: in /Users/theodore/Library/Developer/Xcode/DerivedData/Tower-bkpdifuqssebjdgurzmtirbxejnn/Build/Intermediates/Tower.build/Debug/Tower.build/Objects-normal/x86_64/TWRAppDelegate.o, file too small for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Weiß jemand was falsch ist?
TWRAppDelegate.o
Datei beschädigt oder von der Größe Null ist.Antworten:
Die Antwort von @ martin-baulig stehlen:
Versuchen Sie eine vollständige Wiederherstellung / Reinigung. Es ist möglich, dass der vorherige Build abnormal abgebrochen wurde und die Datei TWRAppDelegate.o beschädigt oder von der Größe Null ist.
quelle
Normalerweise füge ich der betreffenden Datei ein Leerzeichen hinzu (kann ein beliebiges Zeichen sein), entferne es und speichere es dann. Einfacher und schneller als ein sauberer Build.
quelle
Um dieses Problem automatisch zu beheben,
Build Script Phase
kann hinzugefügt werden. Gehe zu Xcode -> Dein Projekt -> Dein Ziel -> Erstellungsphasen -> + -> Neue AusführungsskriptphaseBenennen Sie es um
Xcode Link Fix
und verschieben Sie es über dieCompile Sources
Phase. Fügen Sie dies in den Skriptkörper ein:Dieses Skript sucht nach Objektdateien mit der Größe Null und entfernt sie, damit die Kompilierung im nächsten Schritt erfolgreich ist.
Sie müssen dieses Skript für jedes App-Ziel hinzufügen, wenn Sie viele haben.
Die Ausführung dieses Skripts dauert ca. 0,1 Sekunden und erspart Ihnen die vollständige Neuerstellung des Projekts.
quelle
rm -rf /Users/hostname/Library/Developer/Xcode/DerivedData
quelle
Entfernen Sie diese Datei einfach, indem Sie cmd in Ihrer Terminal-App ausführen:
quelle
Da das Erstellen eines sauberen Projekts viel zu lange dauern kann, gibt es für diejenigen, die Zugriff auf die im Cache beschädigte Datei haben, einen kürzeren Weg:
Vollversion, damit Sie die Datei problemlos finden können:
quelle
Sie können einfach die Datei TWRAppDelegate.o löschen und den Build fortsetzen. Kopieren Sie den in der Fehlermeldung genannten vollständigen Pfad und fügen Sie ihn hinter einem 'rm'-Befehl in Ihr Terminal ein. Es ist nicht erforderlich, abgeleitete Daten zu bereinigen / neu zu erstellen, abgeleitete Daten zu löschen, die Datei zum Projekt hinzuzufügen / daraus zu entfernen usw.
quelle
Schnelle Möglichkeit, Fehler zu beheben, ohne den Cache vollständig zu bereinigen:
TWRAppDelegate
)quelle
Schritt 1. Gehen Sie zu: Projekt> Build-Einstellungen> Suchpfade
Schritt 2. Setzen Sie "Immer nach Benutzerpfaden suchen" auf "Ja"
Schritt 3. Erstellen Sie das Projekt (Sie erhalten eine Warnung, aber das Projekt wird erstellt.)
Schritt 4. Setzen Sie "Immer nach Benutzerpfaden suchen" auf "Nein" und erstellen Sie erneut, um die Warnung zu beseitigen
quelle
Eine saubere Neuerstellung war in meinem Fall nicht möglich, daher erkläre ich, wie ich das Problem gelöst habe:
- Verweis auf die Datei entfernt (Datei nicht löschen)
- Datei erneut zum Projekt hinzufügen und ausführen
quelle