sqlite mit Viual Studio?
-
Hallo ich habe hier ein kleines C++ sqlite-Beispielprogramm was sich mit Visual Studio 2005 Compilieren möchte.
Ich habe die sqlite3.h und die zugehörige lib in das selbe Verzeichnis kopiert wo auch sich auch die main.cpp befindet.
Die lib habe ich in den Projekteinstellungen hinzugefügt, wenn ich das Programm Compiliere bekomme ich einen Haufen Fehler:Programm:
#include <stdio.h> #include <stdlib.h> #include "sqlite3.h" int main(int argc, char **argv){ sqlite3 *db; //Datenbank Zeiger sqlite3_stmt *stmt, *stmt2; //Statement Zeiger //Datenbank öffnen oder neu erstellen if (SQLITE_OK != sqlite3_open_v2("C:\\Datenbank.db", &db, 0, 0)) { printf("Fehler beim Oeffnen der Datenbank: %s", sqlite3_errmsg(db)); } //Bytecode Programm aus der SQL Anfrage erstellen if (SQLITE_OK != sqlite3_prepare_v2(db, "SELECT * FROM Mitarbeiter", -1, &stmt, 0)) { //Ausgabe von Fehler (z.B. bei Syntaxfehlern) printf("Fehler beim Vorbereiten der SQL Anfrage: %s", sqlite3_errmsg(db)); } else { sqlite3_prepare_v2(db, "SELECT COUNT(*) FROM Mitarbeiter", -1, &stmt2, 0); sqlite3_step(stmt2); //Solange Datensätze zurückgegeben werden printf("Datensaetze: %d\n", sqlite3_column_int(stmt2, 0)); while (SQLITE_ROW == sqlite3_step(stmt)) { //Werte aus Spalten 2 und 3 ausgeben (Index startet bei 0) printf("%s - %s %s\n", sqlite3_column_text(stmt, 0), sqlite3_column_text(stmt, 2), sqlite3_column_text(stmt, 1)); /* Bei weiterer Verarbeitung der Werte kann man mit * int sqlite3_column_bytes(sqlite3_stmt*, int iCol); * die Größe des Rückgabewerts in Bytes bestimmen. */ } } //Statement löschen sqlite3_finalize(stmt); sqlite3_finalize(stmt2); //Datenbank schließen sqlite3_close(db); return 0; }
Fehler:
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___fixunsdfdi" in Funktion "_sqlite3_value_text". d:\Dokumente\Visual Studio 2005\Projects\C++\sqliteTest\sqliteTest\sqlite3_5_0.lib 1 Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___divdi3" in Funktion "_seekJournalHdr". d:\Dokumente\Visual Studio 2005\Projects\C++\sqliteTest\sqliteTest\sqlite3_5_0.lib 1 Fehler 3 error LNK2001: Nicht aufgelöstes externes Symbol "___divdi3". d:\Dokumente\Visual Studio 2005\Projects\C++\sqliteTest\sqliteTest\sqlite3_5_0.lib 1 Fehler 4 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___umoddi3" in Funktion "_vxprintf". d:\Dokumente\Visual Studio 2005\Projects\C++\sqliteTest\sqliteTest\sqlite3_5_0.lib 1 Fehler 5 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___udivdi3" in Funktion "_vxprintf". d:\Dokumente\Visual Studio 2005\Projects\C++\sqliteTest\sqliteTest\sqlite3_5_0.lib 1 Fehler 6 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___moddi3" in Funktion "_sqlite3VdbeExec". d:\Dokumente\Visual Studio 2005\Projects\C++\sqliteTest\sqliteTest\sqlite3_5_0.lib 1 Fehler 7 fatal error LNK1120: 5 nicht aufgelöste externe Verweise. D:\Dokumente\Visual Studio 2005\Projects\C++\sqliteTest\Debug\sqliteTest.exe
-
Du kannst die sqlite Library in jedes Verzeichniss deiner Wahl kopieren.
Musst aber das verzeichnis VC++ compiler bekannt machen.
Jeweils ( include und lib ) Verzeichnisse, unter:Extras -> Optionen -> Projekte und Projektmappen -> VC++ Verzeichnisse:
-
Extras -> Optionen -> Projekte und Projektmappen -> VC++ Verzeichnisse:
Besser aber die im Project pflegen und ned global, also eher bei Projecteigenschaften (fuer das Project klar) dort unter Linker, zusaetzliche Biblotheksverzeichnisse ....
Aber da fehlt was bei den Fehlermeldungen ...
wenn er die "zugehörige lib" richtig bei den Projecteigenschaften, Linker, Eingabe eingetragen hat, muesste doch als erster fehler vom linker kommen, das er die .lib ned finden kann ....Ciao ...
-
Ja aber soweit ich die fehler verstehe, sind die Fehler in der Lib. gibt es da vielleicht eine extra Lib für Visual Studio?
-
Kompilier dir doch selbst eine Version mit VC++ 2005.
-
siehe hier
-
Ich habe jeden Schritt dieser Anleitung befolgt.
Beim Compilieren von ico bekomme ich 5 Fehler:Fehler 1 fatal error U1077: "e:\dev\src\icu\source\extra\uconv\..\..\..\bin\genrb.EXE": Rckgabe-Code "0xc0000135" NMAKE Fehler 2 error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurckgegeben: "Ein benutzerdefinierter Buildschritt wird ausgefhrt." uconv Fehler 3 fatal error LNK1181: Eingabedatei "../../../lib/icuuc.lib" kann nicht geffnet werden. letest Fehler 4 fatal error U1077: ""e:\dev\src\icu\bin\icupkg"": Rckgabe-Code "0xc0000135" NMAKE Fehler 5 error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurckgegeben: "Die Makefile-Projektaktionen werden ausgefhrt." makedata