SQLite
-
Hallo,
ich habe mir die Shared-Library sqlite-3.2.7.so.gz von www.sqllite.org heruntergeladen.
Diese habe ich in einem Verzeichnis SQLiteTest entpackt. Dort habe ich auch eine Datei SQLiteTest.cpp angelegt und in diese den angegebenen C-Beispiel-Code der Seite www.sqllite.org - quick_start kopiert.
Beim kompilieren (mit g++ (GCC) 3.3.5 (Debian 1:3.3.5-13))
g++ SQLiteTest.cpp -o SQLiteTest
bekomme ich immer die Fehlermeldung: SQLiteTest.cpp:2:20: sqlite.h: Datei oder Verzeichnis nicht gefunden. Ich habe auch den LD_LIBRARY_PATH auf das Verzeichnis gesetzt.
Was muss ich beim kompilieren beachten, damit die Headerdatei aus der so-Datei erkannt wird?Gruss
Aaron
-
Jetzt bin ich einen Schritt weiter...
Ich habe mir die Quellen von www.sqlite.org geholt und diese auf meinem Rechner kompiliert und installiert.
Danach liess sich der Beispielcode problemlos kompilieren, beim Linken
g++ SQLiteTest.o -o SQLiteTest
kamen jetzt dafür einige Fehler:
SQLiteTest.o(.text+0xe0): In function `main': undefined reference to `sqlite3_open'
SQLiteTest.o(.text+0xf4): In function `main': undefined reference to `sqlite3_errmsg'
...
Die Variable LD_LIBRARY_PATH habe ich auf /usr/local/lib/ gesetzt, dorthin hat SQLite die shared-objects kopiert...
Was muss ich beim Linken mit gcc einstellen, damit die SQLite Dateien richtig gelinkt werden??Gruss
Aaron
-
Also,
ich selbst nehme Borland her,
aber sollte bei dir auch nciht anders funk.
Du brauchst eigentlich nur die sqlite3.dll und sqlite3.h,
der Header sollte im Hauptsource-Verzeichnis liegen oder in den Umgebungsvars eingetragen sein. Nun musst du dir entweder etwas Coden das die DLL Dynamisch linkt oder du machst von der DLL eine LIB und linkst diese mit.
Somit werden die func. aus der DLL wie z.B. 'sqlite3_open' auch gefunden.
-
Ja, so ähnlich funktioniert es jetzt auch mit gcc bei mir, wenn ich die Bibliothek beim Linken direkt mit angebe:
g++ /usr/lib/libsqlite3.so SQLiteTest.o -o SQLiteTest
Vielen Dank!