Domanda

Sto cercando di compilare ZeroMQ C vincolante al fine di essere in grado di utilizzarlo su iPhone, ecco il mio opzioni di configurazione:

./configure --host=arm-apple-darwin --enable-static=yes --enable-shared=no CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 CFLAGS="-pipe -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=3.1.2 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -mdynamic-no-pic" CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar AS=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/as LIBTOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/strip RANLIB=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib

E 'in realtà configura e compila bene, ma quando lo aggiungo alla sezione Xcode Frameworks, vengo. Attenzione: errori ld: warning: in /path/to/app/libzmq.a, file was built for unsupported file format which is not the architecture being linked (armv7) e un sacco di simbolo non trovate

Se cambio attuale architettura attiva da ARMv6 a ARMv7, messaggio di avviso cambiarlo in ARMv6. Che cosa sto facendo di sbagliato?

Grazie, Dan

È stato utile?

Soluzione

Sembra che si sta costruendo un ARMv6 universale / binario ARMv7 per l'iPhone (questo è il default, in modo che abbia un senso). Ciò significa che è necessario per costruire una biblioteca universale alla Link contro. Costruire sia le biblioteche, e quindi utilizzare lipo per combinare le due cose.

Per esempio, costruire quella ARMv6 e posizionarlo a armv6/libfoo.a, e l'ARMv7 uno a armv7/libfoo.a. Quindi eseguire

lipo -arch armv6 armv6/libfoo.a -arch armv7 armv7/libfoo.a -output libfoo.a -create

per creare la libfoo.a biblioteca universale.

Altri suggerimenti

Dato il messaggio di avviso da ld, la mia ipotesi è che non sta compilando la libreria per la piattaforma corretta. E dato che si sta utilizzando configure, la mia ipotesi è che si sta cercando di compilare l'esterno biblioteca di Xcode e poi portarlo in Xcode più tardi per collegarlo a.

Forse si potrebbe provare a eseguire Configura per impostare le intestazioni, ma fare il passo di compilazione reale all'interno di Xcode?

Ci sono un sacco di domande correlate qui su SO sulla compilazione di terze parti (esterni) C o C ++ librerie per l'utilizzo in progetti di iPhone.

Creazione libreria statica per iPhone

TiMidity: bisogno di aiuto compilazione di questa libreria per l'iPhone

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top