SQLite 源码获取、编译与使用
2017-07-12 20:26
267 查看
一、引言
最近想要写一个轻巧的桌面端软件,能够根据本地的一些数据进行查询。这个需求就涉及到了数据库的使用。通过查询资料,发现 SQLite 能够完美解决我的需求,所以这里开始了 SQLite 的学习。
二、好书:SQLite权威指南(第二版)
这篇博客并不是一个知识探索与总结的博客,而是为遇到同样问题的同学指出一条路的博客。这里,我通过自行阅读学习《SQLite权威指南(第二版)》的前两章节的内容,初步了解了 SQLite,并且在 Windows 平台下下载了 SQLite 的源代码,并进行了编译,最后链接成了 DLL 动态链接库。最后还新建了一个项目,在一个简单的控制台程序中成功调用了前面编译链接出来的 DLL 动态链接库,实现了一个简单的 SQLite Shell 程序。
这本书是一本好书,如果想要了解的同学,可以自行购买或者下载 PDF 来学习。这里也就不再赘述了。
三、编译与使用:踏坑之旅
在编译 SQLite 源码和使用的过程中,还是遇到了不少的坑。第一步,首先是如何在 Windows 上安装 SQLite。这一块书上其实讲的比较清晰,但是比之其他人认真写的博客而言,还是太过于简略。这里,大家可以通过这篇博客来学习如何安装 SQLite。
Windows 上如何安装Sqlite
第二步,也就是如何编译 SQLite 源代码的问题。书上说的比较简略,如果你按照书上的步骤来实现,肯定是会出问题的,要么是 sqlite.def 文件没有加载到项目中去,要么就是 sqlite3 的一些宏定义没有加上去(会导致编译错误)。这里,下面这篇博客已经讲解的非常清楚了,我就不班门弄斧了 ^_^:
如何编译SQLite源代码?
第三步,当然就是如何使用我们编译出来的动态链接库了。这个问题书上说的非常清楚,但是要做出来还是需要翻两个地方的。
首先,获取 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 的源码项目和使用 SQLite 源码的 Shell 项目的 GitHub 托管地址:
wangying2016/SQLite
wangying2016/SQLite-Shell
To be Stronger!
相关文章推荐
- 如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)
- 如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)
- SQLite源码编译使用
- 【Android源码编译】使用repo工具下载获取android源码
- UE4(四)获取UE4源码以及使用源码编译引擎
- 【Android源码编译】在公司内网环境下使用repo获取android源码失败解决办法
- Tools:downloading and Building EDK II工具篇:安装/使用EDKII源码获取/编译工具[2.3]
- android开发基础[源码获取及编译、模拟器使用]
- 所谓源码获取与编译(libcef_wrapper源码获取与使用)
- 使用BCB对zlib进行源码编译
- 在 Solaris 10 系统上编译并使用SQLite-3.4.2
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- VC2005编译SQLite 生成WINCE上使用的DLL和Lib
- android 内核代码的获取,编译和使用
- Android 小项目之--SQLite 使用法门 (附源码)
- 嵌入式数据库SQLite的编译、安装和使用
- 使用Http请求获取web页面源码
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- 使用GDB源码进行交叉编译
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib