2013-03-05 2 views
7

Sto cercando di compilare i sorgenti con Xcode 4.6, per l'architettura a 32 bit, ma sempre questo errore:Objective-C ARC e Legacy runtime errore di compilazione

error: -fobjc-arc is not supported on platforms using the legacy runtime 
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1 

Cosa c'è di sbagliato?

risposta

14

Stai mixando ARC (conteggio automatico dei riferimenti) con il precedente runtime Objective-C 1.0, che non supporta ARC.

App a 32 bit su OSX, utilizzare automaticamente il runtime 1.0, quindi sarà necessario disabilitare ARC per il progetto e utilizzare il conteggio dei riferimenti manuale.

+0

Cosa succede se il messaggio viene visualizzato durante la compilazione di un'app iOS? –

+0

Molto probabilmente, stai indirizzando la tua app iOS a una versione precedente di iOS che non supporta ARC. – Alan

+1

Inoltre, Visual Source Safe è il diavolo. – Alan

1

Questo problema è riemerso di recente perché Xcode 5 rimuove il parametro ARCHS, se lo si lascia. Ma se si dispone di un build server con Xcode 4, questo è impostato in modo predefinito per la creazione di 32 e 64 bit, che non riesce se ARC è abilitato.

Vedere il mio writeup per una spiegazione più dettagliata.