debian/ubuntu:
$ apt-get install libsqlite3-dev # or rpm -i sqlite-devel-something.rpm
I think a number of interpreters just recompile their small connection libraries on installation, but to do that they need the C .h files in addition to the library to link against. You may already have the library, because something else depended on it, but you don't necessarily have the dev
package, which is kind of half-way between source and binary.
Part of it is straightforward, if you are going to develop with a library you need its interface headers.
But I think something more happened, at first, people tried all-source and all-binary distributions, but the all-binary ones were vulnerable to dependency hell, and the all-source ones were overkill. I think now that an interesting compromise is in use, a semi-source distribution where a program links to installed libraries by recompiling those parts of it that link to extension libraries. This makes a lot of sense with interpreters where most of the system can arrive in binary but the extension modules are dynamically loaded and compiled for the installed system. I think.