First of all use EITHER the source (.c) OR the precomiled dynamic link library (.dll/.lib). Not both.
The .c file contains the code to the sqlite3 database engine. The DLL contains this code compiled to a Dynamic Link Library. The LIB file tells your application how to find the code in the dynamic link library. If you use both, only god (and probably not ever her) knows what will happen. Here is a C++ program that actually does something (yours does not). It compiles and runs when using a real compiler on Winders (GCC). It has no error checking. But it does call "C" functions from "C++". Simply compile it (in C++ mode) together with the sqlite3.c (in C mode) and link them all together. #include "sqlite3.h" #include <fstream> #include <iostream> using namespace std; int main() { sqlite3 *db; sqlite3_stmt *stmt; sqlite3_open(":memory:", &db); sqlite3_prepare_v2(db, "select sqlite_source_id();", -1, &stmt, NULL); sqlite3_step(stmt); cout << sqlite3_column_text(stmt, 0); sqlite3_finalize(stmt); sqlite3_close(db); } --- The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume. >-----Original Message----- >From: sqlite-users [mailto:sqlite-users- >boun...@mailinglists.sqlite.org] On Behalf Of zydeholic >Sent: Friday, 21 December, 2018 17:26 >To: SQLite mailing list >Subject: Re: [sqlite] Need setup code for VC++ 2017 that will >ACTUALLY COMPILE > >My cpp code consists of this at the moment: >#include "sqlite3.h" >#include <fstream> >#include <iostream> >using namespace std; > >int main() >{ > sqlite3 *db; >} > >I have added sqlite3.h to my header files.I have added sqlite3.c to >my source files.I've moved these two files, plus sqlite3.dll and >sqlite3.lib into the same directory as these other files: >C:\users\dsnos\source\repos\sqlite_try_3\sqlite_try_3 > >In Project, I've made the following settings:VC++ >Directories>>Library >Directories>>C:\users\dsnos\source\repos\sqlite_try_3\sqlite_try_3;C/ >C++>>Additional Include >Directories>>C:\users\dsnos\source\repos\sqlite_try_3\sqlite_try_3; >C/C++>>Precompiled Headers>>Not using precompiled headers (all >configurations, all platforms). >Linker>>Input>>Additional Dependencies>>sqlite3.lib >I now get two errors when I compile: >Severity Code Description Project File Line Suppres >sion State >Error LNK2001 unresolved external symbol >_sqlite3_version sqlite_try_3 C:\Users\DSNoS\source\repos\sqlit >e_try_3\sqlite_try_3\sqlite3.obj 1 >Severity Code Description Project File Line Suppres >sion State >Error LNK1120 1 unresolved >externals sqlite_try_3 C:\Users\DSNoS\source\repos\sqlite_try_3 >\Debug\sqlite_try_3.exe 1 > > >At some point before I started filling in the directories and such in >Project, my code: >sqlite3 *db; >was errored out (underlined in red). Now they are not erroring >out. I just get the two errors above when I compile. > > From: zydeholic <nonghead-webs...@yahoo.com> > To: SQLite mailing list <sqlite-users@mailinglists.sqlite.org> > Sent: Friday, December 21, 2018 3:46 PM > Subject: Re: [sqlite] Need setup code for VC++ 2017 that will >ACTUALLY COMPILE > >Ok, to further define my goals, I am not looking to compile the files >into a final EXE, unless that is the only way I can use it with my >program. I want to tap into the sqlite functionality from a C++ >application I am writing. > >I suppose I need to use the DLL that I downloaded, but have never >used an external library before, not where I had to tell the compiler >how to talk to it. >So, SQLite, backend database. I will do the front end stuff in my >code. Hopefully this clarifies something. > > > From: Larry Brasfield <brasfield.la...@gmail.com> > To: "sqlite-users@mailinglists.sqlite.org" <sqlite- >us...@mailinglists.sqlite.org> > Sent: Friday, December 21, 2018 1:02 PM > Subject: Re: [sqlite] Need setup code for VC++ 2017 that will >ACTUALLY COMPILE > >Zydeholic wrote: >➢ I compile and get one error: >Severity Code Description Project File Line Suppres >sion State Error LNK2001 unresolved external symbol >_sqlite3_version sqlite_try_3 C:\Users\DSNoS\source\repos\sqlit >e_try_3\sqlite_try_3\sqlite3.obj 1 > >That symbol is declared, and a definition for the object so named is >coded, in the sqlite3.c amalgamation without the possibility of >omission by the preprocessor. So I find it exceedingly strange that >your link operation is complaining of an unresolvable reference to >that symbol in sqlite3.obj. For a C compilation, which you certainly >should be using for that C source, the name should be undecorated, >except for the leading underscore, just as it appears in the above- >quoted error message. This leads me to believe you are doing >something too strange for anybody to guess with the information >provided so far. > >You may notice that this thread is misnamed for this latest >difficulty, since the code does actually compile. If I had to name >it accurately, it would be called: [off topic] Need build >instructions for my project which uses SQLite in a development >environment differing from the one actually supported by the SQLite >team. > >Some questions to ask yourself as you attempt to sort this out: >1. Am I compiling the .c sources as C language? >2. Have I modified the sources everybody assumes are as released by >the SQLite team? >3. What does insight does dumpbin.exe, (the VC command line tool for >showing compiled image content), provide into my link errors? >4. How does my sqlite3.obj differ from the one I get following step >19 at https://www.sqlite.org/cli.html , and why? >_______________________________________________ >sqlite-users mailing list >sqlite-users@mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > > >_______________________________________________ >sqlite-users mailing list >sqlite-users@mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users