
Proč jsem se vydal cestou vlastní kompilace ze zdrojových kódů SQLite a nenechal vše na vlastních ovladačích knihovny QT ? Protože aktualizace zdrojových kódů databáze je docela častá a knihovna QT je nereflektuje dostatečně včas a ve verzi QT knihovny 3.3 se mi povedlo otevřít pouze databázové soubory SQLite verze 2 (aktuální je SQLite formát verze 3). Možná byla chyba na mojí straně – nevím, dále jsem to do podrobností nezkoumal.
Celý postup je otestován na distribuci Fedora Core 9 (Sulphur) a použitá verze KDevelopu byla 3.5.1. Vše je ukázáno na jednoduché aplikaci pojmenované SQLiteTest, která v konečném stavu umí pouze otevřít a uzavřít testovací databázi. Další funkce by již neměl být problém doimplementovat, stačí prozkoumat soubory sqlitedb.h a sqlitedb.cpp, které tvoří wrapper nad samotnou knihovnou databáze a taktéž obsahují všechny funkce potřebné k běžným operacím nad databází.
- Stáhneme zdrojové kódy databáze SQLite ze stránek projektu (http://www.sqlite.org). Já použil ZIP archív, ve kterém jsou uloženy jenom čisté zdrojové kódy bez konfiguračních skriptů.
- Vytvoříme nový projekt v KDevelopu: menu Project -> New project..., zvolíme C++ -> KDE -> Simple KDE Application a projekt pojmenujeme SQLiteTest.
- Zobrazíme záložku AutoMake Manageru (pravá část okna KDevelopu). V hořením stromě označíme složku src, klikneme na ní pravým tlačítkem a zvolíme Add new subproject... a nazveme jej sqlite_source.
- Do nově vzniklé složky sqlite_source v adresářové struktuře našeho projektu nakopírujeme céčkovské i hlavičkové soubory zdrojových kódů databáze SQLite (POZOR ! - bez souboru tclsqlite.c - POHOV !).
- V Automake manageru v horním stromě označíme složku sqlite_source, klikneme na ní pravým tlačítkem a zvolíme Add target...
- V zobrazeném dialogovém okně nastavíme volbu Primary na Library, Prefix na lib, vyplníme File name hodnotou libsqlite.so a stiskneme tlačítko OK
- V Automake manageru v dolním stromě klikneme pravým tlačítkem na libsqlite.so.a a zvolíme Add Existing files...
- V zobrazeném dialogovém okně v levé části vybereme všechny *.c a *.h soubory, stiskneme tlačítko Add selected a stiskneme OK.
- V Automake manageru v horním stromě označíme složku src, poté v dolním stromě vybereme sqlitetest, stiskneme na něm pravé tlačítko myši a zvolíme Options, přejdeme do záložky Libraries a v sekci Link convenience libraries inside project (LDADD) zaškrtneme knihovnu src/sqlite_source/libsqlite.so.a a potvrdíme stiskem tlačítka OK. Může nastat problém s komentáři ve zdrojových kódech vlastní databáze - tzn. vyhodit ze zdrojáků všechny řádky začínající '//' (komentáře).
- Následuje přidání wrapperu nad databází SQLite do naší aplikace. Já jsem si vypůjčil jeden z projektu SQLiteBrowser. Do src složky aplikace nakopírujeme soubory sqlitedb.cpp, sqlitedb.h, sqlbrowser_util.cpp a sqlbrowser_util.h. V honím stromě Automake manageru si označíme složku src a v dolním stromě poté pravým tlačítkem klikneme na složku sqliteexp a zvolíme volbu Add existing files... Poté v dialogovém okně označíme sqlitedb.cpp, sqlitedb.h, sqlbrowser_util.cpp, sqlbrowser_util.h, stiskneme Add selected a potvrdíme tlačítkem OK.
- Poté již stačí poupravit sqliteexp.cpp (nezapomenout na #include "sqlitedb.h" )
- Zvolíme Build project v menu Build a je to...
That's all, folks !
Žádné komentáře:
Okomentovat