Domanda

Innanzitutto, perdona e sottolinea se devo usare un altro protocollo per fare riferimento a un altro thread/post.

C'era un thread precedente come compilare spatilite per iOS dove la risposta superiore ha parzialmente descritto l'edificio Spatialite come una biblioteca statica per iOS. La risposta includeva il testo:

"Una volta che hai trascinato N drop the .a (entrambi sono tenuti a lavorare nel simulatore e sull'hardware reale), puoi inizializzare lo spatialite semplicemente invocando spatialite_init(1)."

Immagino che questo sia tradotto in una versione di quanto segue?

Xcode 4

  1. File-> Nuovo-> Nuovo target-> ios-> framework e biblioteca-> Libreria statica del cacao Touch

  2. Nomina la libreria - libspatialite_teds

  3. Trascina i file di intestazione su libspatialite_teds -> copia intestazioni (domanda qui ... c'è un file spatialite.h nella directory "headers" del download "Spatialite2.3.1.zip". Quindi nella sottodirectory "Spatialite" c'è un altro Spatialite.h Non è un file identico ed è ovviamente necessario. Trasciniamo solo i file di intestazione dalla directory "intestazioni", quindi trasciniamo la directory "spatialite" come directory nell'area "copia headers" della nostra libreria statica Xcode "MyNewLibrary '?)

  4. Trascina i ".a files" libspatialite2.3.1_arm.a & libspatialite2.3.1_x86.a

  5. Non dovremmo avere alcuni file ".m" da abbinare a queste intestazioni nel campo "Compila fonti"?

Ora, senza fare riferimento al libSpatialite_TedS Nel mio progetto, quando "Command-B" da costruire, la build del progetto ha successo. Tuttavia, quando cerco il prodotto compilato in

/Utenti/admin/libreria/sviluppatore/xcode/deriieddata/myproject-gutnkbwqonzgxbcmfzzzkadqhid/build/prodotti/rilascio-iphonesimulator

Vedo i prodotti Build, ma non includono libspatialite_teds.

È perché il compilatore è "intelligente" e riconosce che nessuno dei file di intestazione/.A è referenziata nel progetto, quindi non si preoccupa di compilarli?

Ed è questo il modo corretto di raggiungere l'obiettivo del poster originale come compilare spatilite per iOS?

Molte grazie, Ted S

È stato utile?

Soluzione

Mi stavo anche imbattendo in errori di linker con il poster originale, ma lo ho risolto includendo libsqlite3.dylib, libstc ++. Dylib e libiconv.dilib nel bersaglio.

Spero che sia di aiuto!

Altri suggerimenti

Ted, credo che i file e le intestazioni .a (libreria statica) siano pensati per essere usati immediatamente in un progetto, piuttosto che in un'altra libreria statica come hai descritto. Sono il risultato dell'output di un progetto. Penso che tu possa trovare il progetto che li ha costruiti, qui:

http://lionel.gueganton.free.fr/spatialite/

E un po 'di più sui file della libreria statica:

Che cos'è un file .a (come libcrypto.a)?

MODIFICATO

Ecco un altro link che potresti trovare utile. È sintetizzato del processo di costruzione della biblioteca statica in iOS:http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/

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