VC++ sqlite3.dll - sqlite3.lib

Mein Ziel ist es in Visual C++ sqlite3 zu benutzen.
Ich beschränke mich bisher lediglich auf C und möchte auch bei C bleiben...
Mittlerweile habe ich es hinbekommen mit
http://www.sqlite.org/sqlite-dll-win32-x86-3070600.zip
und diesem Befehl
Code:
LIB /DEF:sqlite3.def
die sqlite3.lib zu bauen.
Wenn jetzt die .dll in Nähe der .exe ist funktioniert nun auch alles einwandfrei.

Aber jetzt hab ich eig. genau das was ich so gar nicht wollte. Nämlich eine zweite Datei bei der .exe :rolleyes:

Habe öfters gelesen das ich mit den Sources eine .lib bauen kann in der dann alles komplett enthalten ist, also so das ich mit dieser .lib keine .dll in der Nähe der .exe mehr benötige.

Ich kenne mich leider mit Visual Studio nicht soo besonders aus, da ich eher auf der Linux Schiene gefahren bin bisher. Ich weiß leider überhaupt nicht wo ich jetzt anfangen soll, so eine .lib zu bauen.

Möchte einfach nicht eine .dll bei der .exe haben sondern diese allein.
Danke für jede Hilfe
 
Ich kenne mich leider mit Visual Studio nicht soo besonders aus, da ich eher auf der Linux Schiene gefahren bin bisher. Ich weiß leider überhaupt nicht wo ich jetzt anfangen soll, so eine .lib zu bauen.

Hm, also linken tut man auch unter Linux und da auch statisch oder dynamisch, daran ändert sich auch mit Windows eigentlich nichts. Und da ist Google ziemlich aufschlussreich...
 
Ja aber ich versteh das mit den .dlls nicht so... Ich kann doch keine .dll linken, sodass sie später nicht mehr bei der .exe sein muss?

edit: Also wenn ich die .dll genau linke wie die .lib bekomme ich folgendes
Code:
sqlite3.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x470
 
Zuletzt bearbeitet:
Hm, ich verstehe vllt den Unterschied zwischen dll und lib noch nicht so ganz.
Ob die lib jetzt statisch oder dynamisch gelinkt ist, hat doch nichts mit der dll zu tun, oder? Ich brauch doch so oder so beides, oder?

Wenn ich das richtig verstehe wird in dem Link den du mir geschickt hast erklärt, wie man eine statische library baut?

Aber ich habe ja schon quasi beides?
Ich steh ein wenig auf dem Schlauch^^
 
Wenn du die sqlite3 amalgation hast, kannst du die sqlite3 Quelldateien auch einfach zu deinem Projekt hinzufügen. Damit ersparst du dir das rumgelinke...
 
Das glaub ich jetzt nicht^^ Ich könnte wetten das hätte ich schon mal probiert :P
Funktioniert, vielen Dank euch beiden
 
Hm, jetzt habe ich wieder ein Problem in dieser Art.
Ich denke ich mache mal kein neues Thema auf sondern schreibe es hier:

Brauch nun die ftplib
Habe mir dazu dieses Paket herunter geladen http://www.nbpfaus.net/~pfau/ftplib/ftplib-3.1-1.zip
Und die Sources (ftplib.h, ftplib.c, getopt.h und getopt.c) zum Projekt hinzugefügt.
Müsste das jetzt nicht eig. funktionieren? Genauso war es ja bei sqlite3 jetzt auch.
Bei Aufruf "FtpInit()" bekomme ich folgendes:

Code:
1>Link:
1>     Creating library C:\***\Debug\projekt.lib and object C:\***\Debug\projekt.exp
1>ftplib.obj : error LNK2019: unresolved external symbol _WSAStartup@8 referenced in function _FtpInit
1>ftplib.obj : error LNK2019: unresolved external symbol _connect@12 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _closesocket@4 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _setsockopt@20 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _socket@12 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _gethostbyname@4 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _inet_addr@4 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _htons@4 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _getservbyname@8 referenced in function _FtpConnect
1>ftplib.obj : error LNK2019: unresolved external symbol _recv@16 referenced in function _readline
1>ftplib.obj : error LNK2019: unresolved external symbol _select@20 referenced in function _socket_wait
1>ftplib.obj : error LNK2019: unresolved external symbol _send@16 referenced in function _FtpSendCmd
1>ftplib.obj : error LNK2019: unresolved external symbol _listen@8 referenced in function _FtpOpenPort
1>ftplib.obj : error LNK2019: unresolved external symbol _bind@12 referenced in function _FtpOpenPort
1>ftplib.obj : error LNK2019: unresolved external symbol _getsockname@12 referenced in function _FtpOpenPort
1>ftplib.obj : error LNK2019: unresolved external symbol _accept@12 referenced in function _FtpAcceptConnection
1>ftplib.obj : error LNK2019: unresolved external symbol ___WSAFDIsSet@8 referenced in function _FtpAcceptConnection
1>ftplib.obj : error LNK2019: unresolved external symbol _shutdown@8 referenced in function _FtpClose
1>C:\***\Debug\projekt.exe : fatal error LNK1120: 18 unresolved externals
1>
1>Build FAILED.
 
Der Linker findet einige Referenzen nicht. Öffne mal das FTPLib Projekt und schau nach, welche Libraries dort hinzugelinkt werden und füge sie deinem Projekt auch hinzu.

Nach kurzem Googlen würde ich einfach mal folgendes probieren:

include winsock2.h
link to ws2_32.lib
needs ws2_32.dll
Quelle: http://www.daniweb.com/software-development/cpp/threads/81696

wsock32.lib wird im FTPLib Projekt auch gelinkt. Da die Verweise alle daraus stammen, wird diese fehlende Referenz dein Problem sein
 
Zuletzt bearbeitet:
Wenn ich das richtig verstehe muss dann aber die ws2_32.dll wieder bei der .exe sein, oder?
Das wäre nicht so praktisch^^
 
Zurück
Oben