100 votes

Erreur d'édition de liens dans Xcode : fichier trop petit pour l'architecture x86_64

Je suis en train de développer une application dans Xcode.

Lorsque j'essaie de construire, cette erreur apparaît :

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 ?

3voto

Vadim Akhmerov Points 251

Un moyen rapide de corriger l'erreur sans nettoyage complet du cache :

  1. Ouvrir le fichier décrit dans l'erreur (dans le cas de cette question TWRAppDelegate )
  2. cmd + A
  3. cmd + X
  4. Reconstruction - échec
  5. cmd + V
  6. Reconstruire - réussir

1voto

Matic Oblak Points 10618

Comme la construction d'un projet propre peut prendre beaucoup trop de temps, il existe un moyen plus court pour ceux qui ont accès au fichier qui est corrompu dans le cache :

  • Supprimer le fichier (Supprimer la référence)
  • Projet de construction
  • Réinsérer le fichier
  • Projet de construction

Version complète pour que vous n'ayez aucun mal à trouver le fichier :

  • Trouver le fichier dans le navigateur du projet Xcode
  • Cliquez avec le bouton droit de la souris sur le fichier et appuyez sur "Afficher dans le finder" (ouvre un finder à l'endroit où se trouve le fichier).
  • Sélectionnez le fichier dans Xcode et appuyez sur backspace puis cliquez sur "Supprimer la référence".
  • Construire le projet (il va échouer mais attendez qu'il se termine)
  • Réinsérez le fichier en le faisant glisser depuis le finder à l'endroit où vous venez de le supprimer.
  • Construire le projet (devrait fonctionner maintenant)

1voto

Jason Pepas Points 41

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, de supprimer les données dérivées, d'ajouter/supprimer le fichier du projet, etc.

-1voto

tland Points 1

Étape 1. Allez dans : Projet > Paramètres de construction > Chemins de recherche

Étape 2. Définissez l'option "Toujours rechercher les chemins d'accès de l'utilisateur" sur Oui.

Étape 3. Construisez le projet (Vous recevrez un avertissement mais le projet sera construit).

Étape 4. Remettez l'option "Always Search User Paths" sur Non et recommencez à construire pour éliminer l'avertissement.

-1voto

David Santiago Points 67

Une reconstruction propre n'a pas fonctionné dans mon cas, j'explique donc comment j'ai résolu le problème :
- Suppression de la référence au fichier (ne pas supprimer le fichier)
- Ajoutez à nouveau le fichier au projet et exécutez

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X