Sto provando a far funzionare un'app sul simulatore che ha avuto qualche problema prima. Non abbiamo libjpeg.a creato per i386
, ma ha x86_64
. Questa è l'unica dipendenza rimasta, ma mi chiedo il motivo per cui ho effettivamente bisogno dei simboli i386
, se sono in esecuzione su un mac x86_64
.Perché il simulatore iOS richiede i simboli i386 e x86_64 anche se sono su un sistema x86_64 solo?
Perché il simulatore iOS richiede i simboli i386 e x86_64 anche se sono su un sistema x86_64 solo?
risposta
Il simulatore iOS può eseguire l'app in modalità a 32 e 64 bit. Questo ti consente di risolvere molti problemi a 64 bit e assicurarti che sia pronto per armv7 e arm64. Per fare ciò, compila la tua app per i386 e x86_64 e richiede le librerie per entrambe le architetture.
realtà i386 L'architettura è per iPhone simulatore dove, come x86_64 architettura è per i simulatori iPad, entrambi sono 32 e 64 bit compatibili.
applicazioni iOS devono funzionare su molte architetture differenti:
arm7: Used in the oldest iOS 7-supporting devices
arm7s: As used in iPhone 5 and 5C
arm64: For the 64-bit ARM processor in iPhone 5S
i386: For the 32-bit simulator
x86_64: Used in 64-bit simulator
Sono a conoscenza delle diverse architetture. Comunque la mia domanda era più sul caso particolare del perché le build per entrambe le architetture fossero necessarie semplicemente per costruire un simulatore. Sembra che ci siano una moltitudine di motivi per cui (ad esempio la tua app è universale per iPad e iPhone, ma Xcode SDK utilizza effettivamente un'architettura a 32 bit più vecchia per emulare gli ambienti più vecchi in quanto non sono stati aggiornati a 64 bit). –
- 1. Simboli indefiniti per architettura x86_64 iOS swift
- 2. differenza tra i386: x64-32 vs i386 vs i386: x86_64
- 3. Gcc su OS X: simboli non definiti per l'architettura x86_64
- 4. Simboli Xcode C++ :: duplicati per l'Architettura x86_64
- 5. Impossibile integrare SDK iOS Firebase - Simboli indefiniti per architettura x86_64:
- 6. Compilare cross x86_64 su sistema i686 su Ubuntu con distcc
- 7. x86_64 Confusione chiamata sistema di assi Linux
- 8. Simboli indefiniti per architettura x86_64: quale architettura dovrei usare?
- 9. simboli non definiti per l'architettura x86_64 ImageMagick su Mac Lion
- 10. GoogleMapsSDK: i simboli non definiti per l'architettura x86_64
- 11. Differenze tra la compilazione per i386 vs x86_64 in Xcode?
- 12. È syscall un'istruzione su x86_64?
- 13. Simboli indefiniti per architettura x86_64 C++ su Mac
- 14. come sapere se l'architettura corrente è i386 o x86_64 nei mac? (Xcode)
- 15. gcc 4.2.1 Problema di collegamento: Simboli indefiniti per l'architettura x86_64
- 16. Soft Float on x86_64
- 17. Simboli indefiniti per architettura x86_64: "std :: terminate()", referenziato da
- 18. Simboli indefiniti per architettura x86_64 in QT-creatore
- 19. Simboli indefiniti per architettura x86_64: per build caffe
- 20. simboli duplicati per architettura x86_64 (Implementazione di FBSDKCoreKilt) Swift
- 21. C - Simboli indefiniti per architettura x86_64 durante la compilazione su Mac OSX Lion
- 22. Perché il suono del sistema ios non funziona nel simulatore?
- 23. Che cosa significa questo: i simboli non definiti per l'architettura x86_64 "_main"
- 24. x86_64 allinea lo stack e ripristina senza salvare i registri
- 25. Che cosa significa l'errore in fase di compilazione "Simboli indefiniti per architettura x86_64"?
- 26. Dispositivo virtuale Android - Armeabi-v7a vs x86_64
- 27. Smontare in x86_64 su OSX10.6 (Ma con _Intel_ sintassi)
- 28. Simboli indefiniti per l'errore architettura x86_64 durante il collegamento di OpenCV in Xcode
- 29. Simboli non trovati per l'architettura i386 - Ma funziona per il dispositivo iOS
- 30. Template errore di generazione: i simboli non definiti per l'architettura x86_64:
Grazie Sì ho pensato che questo fuori solo dopo l'invio. Stavo pensando che avrei potuto essere in grado di implementare su un target virtuale a 64 bit senza simboli a 32 bit e che forse Xcode avrebbe tentato solo di collegare 32 bit quando si distribuiva su un target virtuale a 32 bit. Nel frattempo mi sono aggirato rimuovendo arm7 dalle impostazioni di costruzione. Tuttavia, sei corretto e meriti la risposta giusta. –