Sto scrivendo una libreria statica per iPhone e mi chiedo se quello che sto facendo è raccomandato o se dovrei adottare un approccio diverso.Modo corretto per collegarsi alle librerie dalle librerie per l'iPhone/CocoaTouch
La libreria statica che sto scrivendo dipende da libxml2. libxml2 ha una libreria dinamica (dylib) e una libreria statica (a). Ho provato due approcci.
Approccio uno - Quando si tenta di collegarsi verso la libreria statica con l'aggiunta di "-lxml2" alla voce "Altre bandiere linker" la generazione non riesce con il seguente messaggio:
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library)
approccio in due - posso collegare con successo contro la libreria dinamica dalla mia libreria statica, ma non sono sicuro se questo è consentito (o l'approccio corretto) su iPhone. Anche se sto costruendo una libreria statica, Apple consente le librerie statiche che si collegano alle librerie dinamiche? Sto ancora imparando sulle librerie statiche, ma dalla mia comprensione il codice del dylib sarebbe stato combinato con il mio codice per creare una libreria, quindi il collegamento con il dylib non dovrebbe essere un problema.
In sintesi: [? Builds, ma questo è corretto ed accettabile]
- mylibrary.a - -> libxml2.a [Non funziona]
- mylibrary.a> libxml2.dylib
In realtà, XCode lo rende perfetto. Più in astratto, però, StackOverflow dovrebbe essere un posto dove trovare rapidamente * la risposta corretta *! Se non lo sai, o non sei sicuro, ti preghiamo di non postare come risposta. Chiedi chiarimenti alle domande nei commenti o fai qualche ricerca finché * non * conosci la risposta corretta! :) – Olie