2015-05-28 11 views
26

Sto creando un'app meteo che ottiene informazioni da un sito web. Tutto andava bene l'ultima volta che stavo codificando (ieri sera), ero in grado di compilare ed eseguire il simulatore senza errori. Proprio oggi, quando lancio lo stesso progetto, senza modificare nulla, ho ricevuto un "Errore Linker Apple Mach-O". Potrebbe aiutarmi con questo per favore?Swift: Errore linker Apple Mach-O (file troppo piccolo per architettura x86_64)

Ecco i dettagli dell'errore:

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 

e in basso:

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) 

ho controllato altri "Errore di Apple Mach-O Linker" su StackOverflow, ma sembrano essere avere un "ld" diverso con il mio, anche se lo stesso "clang".

risposta

79

Provare una ricostruzione completa/pulizia. È possibile che la build precedente sia stata abortita in modo anomalo, lasciando il file ViewController.o danneggiato o zero.

da pulire: In Xcode menu "Prodotto", selezionare "Clean" (scorciatoia: Cmd + Shift + K)

Per ricostruire: Nel menù Xcode "Prodotto", selezionare "Build" (scorciatoia: Cmd + B)

Se non funziona: menu "prodotto" In Xcode, tenere premuto il tasto Opzione e selezionare "cartella generazione pulita"

riferimento dal HERE.

+0

Questo funziona! Posso chiedere però qual è il significato/funzione di "Ricostruisci" e "Pulisci"? –

+0

Più build puliti e ho ancora questo errore, che è preoccupante! – Brynjar

+0

@Brynjar, prova [eliminazione dei dati derivati] (http://stackoverflow.com/a/38366801/3435562) – mattliu

3

Non è (solitamente) necessario pulire, è sufficiente aprire il file menzionato e salvarlo nuovamente in modo che xcode ritenga che sia stato modificato. Quindi puoi semplicemente fare una build incrementale (molto più veloce).

+0

Ciò consente di risparmiare un sacco di lavoro. Se non funziona, cambia qualcosa nel file e ricompila per farlo funzionare. – Tieme

0

Ho avuto lo stesso problema. Si è scoperto che uno dei miei framework che ho aggiunto esternamente non è stato trovato. Per risolvere il problema ho rimosso il riferimento, lo ho scaricato e poi lo ho aggiunto al mio progetto.

0

Per me è stato a causa di uno UINavigationController vuoto incagliato nello storyboard.

Spero che questo aiuti i bisognosi.

Problemi correlati