Je développe une application en Xcode.
Lorsque j'essaye de construire, cette erreur se produit:
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)
Quelqu'un sait-il ce qui ne va pas?
TWRAppDelegate.o
fichier corrompu ou de taille nulle.Réponses:
Voler la réponse de @ martin-baulig:
Essayez une reconstruction / nettoyage complet. Il est possible que la version précédente ait été anormalement abandonnée, laissant le fichier TWRAppDelegate.o corrompu ou de taille nulle.
la source
J'ajoute généralement un espace (qui peut être n'importe quel caractère d'ailleurs) au fichier en question, je le supprime puis je l'enregistre. Plus facile et plus rapide qu'une construction propre.
la source
Pour résoudre automatiquement ce problème
Build Script Phase
peut être ajouté. Aller à Xcode -> Votre projet -> Votre cible -> Phases de construction -> + -> Nouvelle phase de script d'exécutionRenommez-le
Xcode Link Fix
et déplacez-le au-dessus de laCompile Sources
phase. Collez ceci dans le corps du script:# Legacy build system legacy_dir=`dirname "${LD_DEPENDENCY_INFO_FILE}"` if [ -d "${legacy_dir}" ]; then find "${legacy_dir}" -size 0 | while read -d $'\n' file; do rm "$file" done fi # New build system if [ -d "${OBJECT_FILE_DIR_normal}" ]; then find "${OBJECT_FILE_DIR_normal}" -size 0 | while read -d $'\n' file; do rm "$file" done fi
Ce script vérifie les fichiers objets de taille nulle et les supprime donc lorsque la compilation est effectuée à l'étape suivante, il réussit.
Vous devez ajouter ce script pour chaque cible d'application si vous en avez plusieurs.
Ce script prend environ 0,1 seconde pour s'exécuter et vous évite de reconstruire complètement le projet.
la source
rm -rf /Users/hostname/Library/Developer/Xcode/DerivedData
la source
supprimez simplement ce fichier en exécutant cmd dans votre application de terminal:
la source
Moyen rapide de corriger l'erreur sans nettoyage complet du cache:
TWRAppDelegate
)la source
Étant donné que la création d'un projet propre peut prendre beaucoup trop de temps, il existe un moyen plus court pour ceux qui ont accès au fichier corrompu dans le cache:
Version complète pour que vous n'ayez aucun problème à trouver le fichier:
la source
Vous pouvez simplement supprimer le fichier TWRAppDelegate.o et continuer votre construction. Copiez le chemin complet mentionné dans le message d'erreur et collez-le derrière une commande 'rm' dans votre terminal. Il n'est pas nécessaire de nettoyer / reconstruire, supprimer les données dérivées, ajouter / supprimer le fichier du projet, etc.
la source
Étape 1. Accédez à: Projet> Paramètres de construction> Chemins de recherche
Étape 2. Définissez «Toujours rechercher les chemins utilisateur» sur Oui
Étape 3. Générez le projet (vous recevrez un avertissement mais le projet sera généré.)
Étape 4. Redéfinissez «Toujours rechercher les chemins utilisateur» sur Non et reconstruisez pour éliminer l'avertissement
la source
Une reconstruction propre n'a pas dans mon cas donc j'explique comment j'ai résolu le problème:
- Suppression de la référence au fichier (ne pas supprimer le fichier)
- Ajouter à nouveau le fichier au projet et exécuter
la source