Errore del compilatore Xcode versione 4.6.2 (4H1003)


88

Ho appena aggiornato alla versione 4.6.2 di Xcode (4H10003) e ho provato a eseguire un progetto dell'applicazione precedentemente funzionante nel simulatore e ho ricevuto il seguente errore e la compilazione non è riuscita.

File PCH creato da un ramo diverso ((clang-425.0.27)) rispetto al compilatore ((clang-425.0.28))

Cosa è andato storto e come risolverlo?


Ho provato a fare un prodotto -> Pulisci ed eliminare l'app creata in precedenza dal simulatore. Nessuno dei due ha funzionato.
OscarTheGrouch

2
"Clean Build Folder" non ha risolto il mio problema durante la creazione su un dispositivo (provato più volte). Ho dovuto "pulire la cartella di build", compilare il simulatore, quindi compilare il dispositivo e il problema è stato risolto.
DBD

Risposte:


183

Fai una pulizia del progetto; tieni premuto Opzione in modo da ripulire l'intera cartella di build e gli intermedi. Potrebbe essere necessario chiudere Xcode e buttare via l'intero contenuto della cartella DerivedData a mano nel Finder, come descrivo qui: Come svuotare le cache e pulire tutti i target Xcode 4


Sì, una pulizia ha funzionato anche per me. L'errore sta solo dicendo che le intestazioni precompilate sono state create con una versione diversa e non sono compatibili con la versione più recente del compilatore.
zingle-dingle

Se questo non ti è successo nei precedenti aggiornamenti di Xcode, sei stato solo fortunato. È successo a me. Ci si abitua dopo un po '...
matt

Questo ha funzionato per me dopo aver eseguito la 'Clean Build Folder' con l'opzione tenuta premuta. Grazie!
Luca

1
Questo ha funzionato per me grazie ... non sapevo che tenere l'opzione fa un diverso tipo di pulizia.
OscarTheGrouch

Funziona solo per la creazione all'interno di Xcode. Se stai compilando dalla riga di comando, vedi il post di Rodrigo Lima di seguito.
Jeff

21

Vai al tuo progetto Build Settings, trova un'impostazione denominata Precompiled Headers Cache Path, quindi elimina quella cartella


Solo questa azione mi ha aiutato con il problema menzionato. Grazie!
Orange

13

Eseguire una pulizia utilizzando command+shift+ked eseguire nuovamente il progetto esistente.

inserisci qui la descrizione dell'immagine


9

Dalle note di rilascio di XCode 4.6.2

Problemi noti

Edificio

Quando si crea un prodotto creato in precedenza con Xcode 4.6.1 o versioni precedenti, la compilazione non riesce con un errore simile a questo:

File PCH creato da un ramo diverso ((clang-425.0.27)) rispetto al compilatore ((clang-425.0.28))

Per risolvere questo problema, scegli Prodotto> Pulisci prima di costruire il prodotto. 13663167

Prodotto in esecuzione> Lavori puliti


1
Sì, era un problema con le versioni precedenti, ma solo ora è riconosciuto che valga la pena di essere menzionato nelle note di rilascio. Inoltre, non forniscono alcuna soluzione per le persone che non utilizzano Xcode come IDE, @sycx fa (cancella il percorso della cache delle intestazioni precompilate).
A-Live

9

Ho provato tutto quanto sopra e funziona bene dall'interfaccia utente di Xcode, ma per me non funzionava ancora quando ho eseguito xcodebuild dalla riga di comando .

Ciò era dovuto alle dipendenze da altre librerie e alle loro intestazioni precompilate. Quando si esegue dalla riga di comando, sembra che xcodebuild archivi / legga le intestazioni precompilate da qui:

/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

Dopo aver ripulito quella cartella, xcodebuild è riuscito.


2
Questa posizione della cartella sarà diversa per tutti, quindi un modo rapido per individuare la cartella giusta da pulire è usare find + grep ... sudo find / var / folders | grep SharedPrecompiled
Greg Combs

1
Ho avuto lo stesso problema. L'esecuzione dalla riga di comando non è riuscita, anche se ho potuto creare da Xcode. Ho finito per correre: sudo find /private/var/folders -name SharedPrecompiledHeaderse poi ho svuotato le directory risultanti. Ha funzionato come un fascino.
Jeff

Se potessi dare a questo un ulteriore voto positivo lo farei. Sicuramente la pulizia non sembra funzionare quando compilo dalla riga di comando. Mi aspettavo che lo sarebbe stato, ma sapere dove cercare le intestazioni precompilate è stato molto utile.
John Bowers

4

Specialmente se si compila dalla riga di comando o si dispone di uno script di compilazione, la pulizia di xcode target non è sufficiente. Devi eliminare questa cartella.

La posizione esatta dell'intestazione precompilata può essere trovata nel progetto, parte del percorso della cartella è casuale (immagino), specialmente dopo /var/folders/xx..xxx/C.

Target -> build settings => "Build locations" -> Precompiled headers cached path

Esegui Terminal e vai in questa cartella ed elimina (usa il comando),

#rm -fr SharedPrecompiledHeaders

inserisci qui la descrizione dell'immagine


Bella risposta! Ma non avevo tale cartella in quella posizione (anche al prompt del terminale usando ls -lAhF). Tuttavia, chiudere Xcode e quindi eliminare la cartella com.apple.Xcode.501 ha funzionato bene.
RedYeti

La posizione esatta dell'intestazione precompilata può essere trovata nel progetto, parte del percorso della cartella è casuale (immagino), specialmente dopo /var/folders/xx..xxx/C.
karim

Scusa, non sono stato chiaro. Sì, il percorso cambierà sempre sotto / var / folders / * ma la cartella che non c'era era "SharedPrecompiledHeaders" - il che mi ha sorpreso. Ma rimuovere la cartella principale che ho citato dovrebbe funzionare senza problemi.
RedYeti

4

Ho dovuto eliminare manualmente ~/Library/Developer/Xcode/DerivedData/ Clean non ha funzionato per me.


0

usa "comando + maiusc + k" per pulire il tuo progetto, allora starai bene.


0

Pulisci il tuo progetto ed esegui

Prodotto-> Pulisci quindi, esegui.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.