一、引言
最近想要写一个轻巧的桌面端软件,能够根据本地的一些数据进行查询。这个需求就涉及到了数据库的使用。
通过查询资料,发现 SQLite 能够完美解决我的需求,所以这里开始了 SQLite 的学习。
二、好书:SQLite权威指南(第二版)
这篇博客并不是一个知识探索与总结的博客,而是为遇到同样问题的同学指出一条路的博客。
这里,我通过自行阅读学习《SQLite权威指南(第二版)》的前两章节的内容,初步了解了 SQLite,并且在 Windows 平台下下载了 SQLite 的源代码,并进行了编译,最后链接成了 DLL 动态链接库。最后还新建了一个项目,在一个简单的控制台程序中成功调用了前面编译链接出来的 DLL 动态链接库,实现了一个简单的 SQLite Shell 程序。
这本书是一本好书,如果想要了解的同学,可以自行购买或者下载 PDF 来学习。这里也就不再赘述了。
三、编译与使用:踏坑之旅
在编译 SQLite 源码和使用的过程中,还是遇到了不少的坑。
第一步,首先是如何在 Windows 上安装 SQLite。这一块书上其实讲的比较清晰,但是比之其他人认真写的博客而言,还是太过于简略。这里,大家可以通过这篇博客来学习如何安装 SQLite。
第二步,也就是如何编译 SQLite 源代码的问题。书上说的比较简略,如果你按照书上的步骤来实现,肯定是会出问题的,要么是 sqlite.def 文件没有加载到项目中去,要么就是 sqlite3 的一些宏定义没有加上去(会导致编译错误)。这里,下面这篇博客已经讲解的非常清楚了,我就不班门弄斧了 ^_^:
第三步,当然就是如何使用我们编译出来的动态链接库了。这个问题书上说的非常清楚,但是要做出来还是需要翻两个地方的。
首先,获取 SQLite 动态链接库(DLL)。(书 P25)
如果你是老老实实按照上一个条目中的那么编译成功了,那么你应该就已经获得了 SQLite 动态链接库了。如果你没有想要自己编译,那么就去官网进行下载,这里直接照搬书上的解释:然而,下载到了 SQLite 动态链接库并不意味着就能直接使用了。如果想要通过写程序使用 SQLite DLL,还需要创建链接程序的导入库(LIB)。也就是书中所说的下面一段文字:
这里的描述其实非常清晰了,但是对于 VS 不熟悉的同学可能不知道书中所说的 Visual Studio 的命令行是怎么使用的。这里,我也踩过一点坑,不过还是比较容易解决的。
通过点击工具
->Visual Studio命令提示
进入命令行界面。记得要将当前目录转到你所下载的 sqlite3.def 文件同目录下:
这里,我把 sqlite3.def 和 sqlite3.dll 放到了桌面上,于是需要在命令提示符窗口中移动到桌面目录,然后就生成了以下两个文件:
这两个文件中的 sqlite3.lib 就是我们需要的文件。将这个文件放到项目工程目录下,在附件依赖项中添加 sqlite3.lib 的声明即可,具体看书 P32 页中的描述:
至此,我们就在书、博客等等的帮助下完成了 SQLite 源码的获取、编译与使用。
三、总结
学习的过程,其实就是各种资源的整合的过程。看书是一个系统的学习过程,自己动手也是一个实践的学习过程,遇到问题看博客也是一个很重要的解决问题并且思考的过程。
最后,附上我成功编译的 SQLite 的源码项目和使用 SQLite 源码的 Shell 项目的 GitHub 托管地址: