LordK Geschrieben 20. April 2005 Geschrieben 20. April 2005 Hallo Zusammen, für ein Projekt in der Schule brauchen wir eine kleine Datenbank die gar kein großen Umfang haben muss, deshalb haben wir uns für SQLlite entschieden, da wir das "problemlos" mit integrieren können. Leider funktioniert das nicht so wie gewollt. Wenn ich das Programm complilieren / link will bekomme ich vom Linker immer folgende Meldung: C:\c++>bcc32 mytest.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland mytest.cpp: Warning W8057 mytest.cpp 14: Parameter 'NotUsed' is never used in function callb ack(void *,int,char * *,char * *) Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_sqlite3_open' referenced from C:\C++\MYTEST.OBJ Error: Unresolved external '_sqlite3_errmsg' referenced from C:\C++\MYTEST.OBJ Error: Unresolved external '_sqlite3_exec' referenced from C:\C++\MYTEST.OBJ Error: Unresolved external '_sqlite3_close' referenced from C:\C++\MYTEST.OBJ Ich steig einfach nicht dahinter woran das liegt Ich hab die sqlite3.h aus dem Sourcecode package entpackt und in das selbe verzeichnis wie meinen sourcecode gelegt. Die dll datei hab ich sowohl im im Verzeichnis vom Programm als auch im LIB Folder vom Compiler. Das Programm hab ich mir aus der Doku von SQLite rauskopiert, es sieht wie folgt aus: #include <stdio.h> #include <conio.h> #include <iostream.h> #include <windows.h> #include "sqlite3.h" static int callback(void *NotUsed, int argc, char **argv, char **azColName){ int i; for(i=0; i<argc; i++){ printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; } int main(int argc, char **argv){ sqlite3 *db; char *zErrMsg = 0; int rc; if( argc!=3 ){ fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]); exit(1); exit(2); } rc = sqlite3_open(argv[1], &db); if( rc ){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); exit(1); } rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg); if( rc!=SQLITE_OK ){ fprintf(stderr, "SQL error: %s\n", zErrMsg); } sqlite3_close(db); return 0; } Hat jemand vielleicht ne Idee woran das liegen könnte? Danke & Gruß LordK
Bubble Geschrieben 20. April 2005 Geschrieben 20. April 2005 Du musst die entsprechende lib-Datei mit an den Linker übergeben, damit die Symbole aufgelöst werden können.
LordK Geschrieben 20. April 2005 Autor Geschrieben 20. April 2005 hm. das dumme ist nur, ich hab keine .lib datei Im Download Package war nur die .dll und eine .def Datei.
Bubble Geschrieben 20. April 2005 Geschrieben 20. April 2005 Die .def Datei reicht zusammen mit der Header-Datei auch - zumindest beim VC++ Compiler/Linker.
carstenj Geschrieben 21. April 2005 Geschrieben 21. April 2005 DLL steht übrigens für "Dynamic Link Library"....
Bubble Geschrieben 21. April 2005 Geschrieben 21. April 2005 DLL steht übrigens für "Dynamic Link Library".... Was hat das mit seiner Frage zu tun?
carstenj Geschrieben 21. April 2005 Geschrieben 21. April 2005 das dumme ist nur, ich hab keine .lib datei Im Download Package war nur die .dll und eine .def Datei. ...dachte man könnte die .dll statt der .lib dazulinken.
Bubble Geschrieben 21. April 2005 Geschrieben 21. April 2005 ...dachte man könnte die .dll statt der .lib dazulinken. Leider geht das nicht so einfach.
Klotzkopp Geschrieben 22. April 2005 Geschrieben 22. April 2005 LordK, welchen Compiler bzw. welche Entwicklungsumgebung benutzt du? Je nachdem, kannst du nämlich direkt die .def-Datei linken oder mit entsprechenden Tools aus .def und .dll die passende .lib erzeugen lassen.
sissy66 Geschrieben 25. April 2005 Geschrieben 25. April 2005 Habe mal geguckt, ob jemand schon das Problem hatte, weil am WE bei meinem Freund alles geklappt hat. Er hat mir sogar erklaert, was er gemacht hat und ich hab jetzt eher ne Vorstellung davon, was ne dll ist. ;-) bei der Suche im google mit dem Suchbegriff _sqlite3_open kam heraus: http://www.mail-archive.com/sqlite-users@sqlite.org/msg04485.html sqlite with Borland C++ 5.02 ... offensichtlich scheint es zu funktionieren, wenn mit der IMLIB von Borland ne neue dll baut, wenn man dieser mailingliste Glauben schenken darf. Liebe Gruesse, sissy66.
LordK Geschrieben 27. April 2005 Autor Geschrieben 27. April 2005 @sissy66 Hey super danke :e@sy Hat einwandfrei damit funktioniert :D Gruß LordK
sissy66 Geschrieben 27. April 2005 Geschrieben 27. April 2005 weil Du das auch locker gefunden haettest. (Ausserdem 'Dankeschoen' zurueck, ich hab mal wieder an anderer Stelle was Fachliches anbringen koennen und die Kommunikation mit meinem Freund weiter gefoerdert. )
LordK Geschrieben 27. April 2005 Autor Geschrieben 27. April 2005 Ich frag mich auch, warum ich da nicht drüber gestolpert bin. :confused: Hatte schon stunden mit der Suche nach dem Problem verbracht... Wahrscheinlich hab ich nur einen flüchtigen Blick auf die Seite geworfen, hab die falschen paar Zeilen gelesen und hab sie wieder zugemacht... :confused: Naja hauptsache es geht jetzt
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden