čtvrtek, září 27, 2007

Kompilace databáze SQLite ve Visual Studiu 2005

Tento příspěvek je jakýmsi jednoduchým popisem (How-To), jakým způsobem zkompilovat a slinkovat databázi SQLite ze zdrojových kódů pomocí MS Visual Studia 2005 (dále jen VS 2005), pro následné použití v jiné aplikaci. K napsání mě vedl fakt, že sám jsem měl s kompilací problémy a některá nastavení preprocesoru či kompilátoru nemusí být na první pohled úplně zřejmá.
Veškeré postupy se týkají databázového stroje verze 3.4.2, která je v době psaní tohoto návodu poslední stabilní, ale tento postup by měl fungovat i na starších verzích.

Stažení potřebných souborů
Začneme stažením zdrojových kódů databáze SQLite. Pro kompilaci stáhneme tzv. „preprocessed C code“, dále pak (kvůli def souboru) i zkompilovanou verzi databáze.


Na disku vytvoříme adresář SQLite, v něm podadresář SQLite_src a do tohoto podadresáře dekomprimujeme stažený ZIP soubor sqlite-source-3_4_2.zip.

Vytvoření projektu
Spustíme VS 2005 a vytvoříme nový projekt – menu File->New->Project… a následně nastavíme projekt dle obrázku 1.

Obrázek 1


Stiskneme tlačítko OK a v dalším okně tlačítko Next a dokončíme vytvoření projektu s volbami, které jsou na obrázku 2.

Obrázek 2

Stiskneme Finish a projekt je vytvořen.

Nastavení a kompilace projektu
Do adresáře s tímto projektem (v našem případě „\SQLite\SQLite_src\SQLite_src” zkopírujeme soubor sqlite3.def ze staženého sqlitedll-3_4_2.zip.
Nyní přidáme do projektu zdrojové soubory. Menu Project->Add Existing Item…, označíme všechny hlavičkové a C soubory - mimo tclsqlite.c a shell.c (kompilujeme bez podpory TCL a bez podpory shellu) a potvrdíme tlačítkem Add. Přidáme také DEF soubor , který by měl být nakopírován v podadresáři SQLite_src.

Nyní je třeba nastavit vlastní projekt. Menu Project->Properties, v combu Configuration vybereme volbu All configurations a preprocesor nastavíme podle obrázku 3 (NO_TCL;SQLITE_CORE).

Obrázek 3


Dále následuje nastavení Runtime library dle obrázku 4 (Multi-threaded DLL).

Obrázek 4


Posledním krokem je nastavení linkeru dle obrázku 5 (sqlite3.def).

Obrázek 5


Také chci ovlivnit název výsledné DLL knihovny, takže nastavím Linker->General->OutputFile na $(OutDir)\sqlite3.dll.

Vše potvrdíme tlačítkem OK a jdeme na kompilaci. Během ní nám vyskáče necelých 300 warningů, které můžeme v tichosti ignorovat. Po úspěšné kompilaci vzniknou 2 soubory, které budeme potřebovat při začlenění SQLite enginu do naší aplikace – sqlite3.dll a sqlite3.lib.

Případné dotazy rád zodpovím v diskuzi pod příspěvkem.