web-dev-qa-db-fra.com

Swift: erreur de liaison Apple Mach-O (fichier trop petit pour l'architecture x86_64)

Je crée une application météo qui récupère les informations d'un site Web. Tout allait bien la dernière fois que je codais (hier soir), j'ai pu compiler et exécuter le simulateur sans erreur. Juste aujourd'hui, lorsque je lance le même projet, sans rien changer, j'ai reçu une "erreur Apple Mach-O Linker". Pourriez-vous tous aider avec ceci s'il vous plaît?

Voici les détails de l'erreur:

Ld /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator/Haze\ Meter.app/Haze\ Meter normal x86_64
    cd "/Users/Allister/Documents/XCODE/Haze Meter"
    export IPHONEOS_DEPLOYMENT_TARGET=8.3
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.3.sdk -L/Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator -F/Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator -filelist /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze\ Meter.build/Debug-iphonesimulator/Haze\ Meter.build/Objects-normal/x86_64/Haze\ Meter.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze\ Meter.build/Debug-iphonesimulator/Haze\ Meter.build/Objects-normal/x86_64/Haze_Meter.swiftmodule -mios-simulator-version-min=8.3 -Xlinker -dependency_info -Xlinker /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze\ Meter.build/Debug-iphonesimulator/Haze\ Meter.build/Objects-normal/x86_64/Haze\ Meter_dependency_info.dat -o /Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Products/Debug-iphonesimulator/Haze\ Meter.app/Haze\ Meter

et en bas:

ld: file too small (length=0) file '/Users/Allister/Library/Developer/Xcode/DerivedData/Haze_Meter-dkjjcmjehyitmcbhkcbujnsrhwpu/Build/Intermediates/Haze Meter.build/Debug-iphonesimulator/Haze Meter.build/Objects-normal/x86_64/ViewController.o' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

J'ai vérifié d'autres "erreurs Apple Mach-O Linker" sur StackOverflow mais elles semblent avoir un "ld" différent du mien, bien que le même "clang".

30
Allister Bah

Essayez une reconstruction complète/propre. Il est possible que la construction précédente ait été anormalement abandonnée, ce qui a endommagé le fichier ViewController.o ou l'a réduit à zéro.

Pour nettoyer: Dans le menu "Produit" de Xcode, sélectionnez "Nettoyer" (raccourci: Cmd + Maj + K)

Pour reconstruire: Dans le menu "Produit" de Xcode, sélectionnez "Construire" (raccourci: Cmd + B)

Si cela ne fonctionne pas: Dans le menu "Produit" de Xcode, maintenez la touche Option enfoncée et sélectionnez "Nettoyer le dossier de construction".

référence de ICI

87
Dharmesh

Vous n'avez pas (généralement) à nettoyer, ouvrez simplement le fichier qu'il mentionne et enregistrez-le de nouveau pour que xcode pense qu'il a changé. Ensuite, vous pouvez simplement faire une construction incrémentielle (beaucoup plus rapide).

5
colinta

J'ai eu le même problème. Il s'est avéré que l'un de mes frameworks que j'avais ajouté en externe était introuvable. Pour résoudre ce problème, j'ai supprimé la référence, re-téléchargé, puis ajouté à mon projet. 

1
Carter Cobb

Pour moi, c'était à cause d'un UINavigationController vide dans le storyboard.

J'espère que cela aide les nécessiteux.

0
Nikhil Manapure

dans mon cas, j'obtiens cette erreur dans un cadre auquel les cocoapodes ont accès. Je corrige cette erreur en exécutant cmd 'nettoyer le cache de pod' puis nettoyer et reconstruire le projet.

0
joshia jiang