SQLite 源码获取、编译与使用

一、引言

最近想要写一个轻巧的桌面端软件,能够根据本地的一些数据进行查询。这个需求就涉及到了数据库的使用。

通过查询资料,发现 SQLite 能够完美解决我的需求,所以这里开始了 SQLite 的学习。

二、好书:SQLite权威指南(第二版)

这篇博客并不是一个知识探索与总结的博客,而是为遇到同样问题的同学指出一条路的博客。

这里,我通过自行阅读学习《SQLite权威指南(第二版)》的前两章节的内容,初步了解了 SQLite,并且在 Windows 平台下下载了 SQLite 的源代码,并进行了编译,最后链接成了 DLL 动态链接库。最后还新建了一个项目,在一个简单的控制台程序中成功调用了前面编译链接出来的 DLL 动态链接库,实现了一个简单的 SQLite Shell 程序。

这本书是一本好书,如果想要了解的同学,可以自行购买或者下载 PDF 来学习。这里也就不再赘述了。

三、编译与使用:踏坑之旅

在编译 SQLite 源码和使用的过程中,还是遇到了不少的坑。

第一步,首先是如何在 Windows 上安装 SQLite。这一块书上其实讲的比较清晰,但是比之其他人认真写的博客而言,还是太过于简略。这里,大家可以通过这篇博客来学习如何安装 SQLite。

Windows 上如何安装Sqlite

第二步,也就是如何编译 SQLite 源代码的问题。书上说的比较简略,如果你按照书上的步骤来实现,肯定是会出问题的,要么是 sqlite.def 文件没有加载到项目中去,要么就是 sqlite3 的一些宏定义没有加上去(会导致编译错误)。这里,下面这篇博客已经讲解的非常清楚了,我就不班门弄斧了 ^_^:

如何编译SQLite源代码?

第三步,当然就是如何使用我们编译出来的动态链接库了。这个问题书上说的非常清楚,但是要做出来还是需要翻两个地方的。

  1. 首先,获取 SQLite 动态链接库(DLL)。(书 P25)
    如果你是老老实实按照上一个条目中的那么编译成功了,那么你应该就已经获得了 SQLite 动态链接库了。如果你没有想要自己编译,那么就去官网进行下载,这里直接照搬书上的解释:
    下载 SQLite 动态链接库

  2. 然而,下载到了 SQLite 动态链接库并不意味着就能直接使用了。如果想要通过写程序使用 SQLite DLL,还需要创建链接程序的导入库(LIB)。也就是书中所说的下面一段文字:
    创建链接程序的导入库LIB
    创建链接程序的导入库LIB
    这里的描述其实非常清晰了,但是对于 VS 不熟悉的同学可能不知道书中所说的 Visual Studio 的命令行是怎么使用的。这里,我也踩过一点坑,不过还是比较容易解决的。
    Visual Studio 命令提示
    通过点击 工具->Visual Studio命令提示进入命令行界面。记得要将当前目录转到你所下载的 sqlite3.def 文件同目录下:
    sqlite3.lib
    这里,我把 sqlite3.def 和 sqlite3.dll 放到了桌面上,于是需要在命令提示符窗口中移动到桌面目录,然后就生成了以下两个文件:
    sqlite3.lib 和 sqlite3.exp
    这两个文件中的 sqlite3.lib 就是我们需要的文件。将这个文件放到项目工程目录下,在附件依赖项中添加 sqlite3.lib 的声明即可,具体看书 P32 页中的描述:
    sqlite3.lib

至此,我们就在书、博客等等的帮助下完成了 SQLite 源码的获取、编译与使用。

三、总结

学习的过程,其实就是各种资源的整合的过程。看书是一个系统的学习过程,自己动手也是一个实践的学习过程,遇到问题看博客也是一个很重要的解决问题并且思考的过程。

当然了,SQLite 的学习路上我依然还是一个新手。这里仅仅将我遇到的坑记录下来,能够帮到同样遇到困难的人是我的荣幸。

最后,附上我成功编译的 SQLite 的源码项目和使用 SQLite 源码的 Shell 项目的 GitHub 托管地址:

wangying2016/SQLite

wangying2016/SQLite-Shell

To be Stronger!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值