Compiling Sqlite 3


So I'm trying to get my build system all automated. What this would mean is that, once set up, anyone can checkout my graphics engine project, run a setup script (, and then compile! A quick 1, 2, 3!

So far, it's working for Linux (64 bit) and Windows (32 bit). No Mac yet, since I don't own one.

Now, I want to get this same setup working for my game project. I then needed to get Angelscript, Thread Pool 11, and Sqlite 3 all pre-compiled and ready to go.

The one snag was Sqlite 3 - it didn't seem to have an easily downloadable binary.

So I downloaded the 'amalgamated' source...which had only the .c and .h files. Crap, no build system for me! So, I had to learn some gcc commands on the command line, yay!

So, to compile Sqlite 3 as a shared library (with full optimizations), I did this:

gcc -O3 -c -shared sqlite3.c -o

And for static, I did this:

gcc -O3  -static -c sqlite3.c -o sqlite3.a -pthread -ldl

Note the -pthread and -ldl for the static build. We need the linux thread library pthread and the dl library (not sure what this does, but we need it!) for a bunch of stuff. You might notice the lack of l before pthread. Apparently:

Using "-lpthread" is a bit different than using "-pthread", "-lpthread" means link against the pthread-library whereas "-pthread" means that g++ will choose the appropriate threading library with an pthread interface for you.

Okay then! -pthread it is.

That's it for now - happy coding!