Windows下sqlite3的编译使用总结
Mar 12, 2014
方法一 源码加入项目,直接使用 #
1. 下载 sqlite-amalgamation-3080401.zip 源码包 #
这是一个源代码的合并包,sqlite3源代码的所有文件都被合并成了一个sqlite3.c文件
2. 解压源码包 #
解压目录包括四个文件
- (1)
sqlite3.c
: 源代码合并的文件 - (2)
sqlite3.h
: 头文件 - (3)
sqlite3ext.h
: 支持动态扩展功能时替换sqlite3.h使用。动态扩展的意思是不需要重新编译sqlite就可以添加新的函数和规则。(动态扩展是试验性质的功能,后期可能转为正式也可能剔除)来源 - (4) shell.c : 命令行交互程序。就是一个main()函数,一个循环结构,提示用户输入命令,然后sqlite3执行该命令
3. 编译和使用源码 #
通常,我们只需要用到sqlite3.c 和sqlite3.h 两个文件。
方法就是将sqlite3.c 和 sqlite3.h 加入到自己项目中,和项目源码一起编译。
需要用到sqlite3代码时,先使用 #include<sqlite3.h>
包含头文件,然后就可以直接调用 sqlite3 函数,如 sqlite3_open()
。
方法二 编译源码,生成并使用lib和dll #
1. 下载 sqlite-amalgamation-3080401.zip 源码包 和 sqlite-dll-win32-x86-3080401.zip 预编译二进制包 #
2. 分别解压两个包 #
二进制包中包含两个文件,sqlite3.dll 和 sqlite3.def. 后者为模块定义文件,用于编译动态链接库时防止名字改编(详见Windows下动态链接库的创建和使用(笔记))。
3. 编译源码 #
以Visual Studio 2010为例。
(1) 新建Win32项目,命令为sqlite3。类型选择“DLL”, Empty Project。
(2) 将sqlite3.c sqlite3.h sqlite3.def 拷贝到项目文件夹下(sqlite3ext.h 可选)。
(3) 在Visual Studio中将sqlite3.h (sqlite3ext.h 可选) 添加到项目的”Header Files” 目录下,sqlite3.c sqlite3.def 添加到项目的”Source Files” 目录下。
(4) 右击项目 -> Properties(属性) -> C/C++ > Proprocessor(预处理器) -> Proprocessor Definitions(预处理器定义) 添加如下两条预定义指令:
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_RTREE
(5) 项目Properties(属性) 》Linker(链接器) 》 Input(输入) 》 Module Definition File(模块定义文件) 添加 sqlite3.def
(6) 编译项目,会得到sqlite3.dll 和 sqlite3.lib文件
4. 使用sqlite3 #
将sqlite3.h sqlite3.lib sqlite3.dll 拷贝到项目文件夹,接下来就是通常的dll和lib文件的使用方法了。
如:以Visual Studio为例,将sqlite3.h 添加到”Header Files”目录下,使用 #pragma comment(lib,”sqlite3.lib”)
或者在项目 Properties(属性) -> Linker(链接器) -> Input(输入) -> Additional Dependencies(附加依赖)中添加 sqlite3.lib。在需要使用sqlite3函数时,包含sqlite3.h头文件,然后即可调用sqlite3函数。
方法三 Visual Studio 命令行编译源码得到lib,配合下载的dll文件使用 #
主要参考博客:在Visual Studio 2010中配置使用SQLite3
1. 下载 sqlite-amalgamation-3080401.zip 源码包 和 sqlite-dll-win32-x86-3080401.zip 预编译二进制包 #
2. 分别解压两个包 #
新建一个文件夹如 D:\SQLite3
,将预编译二进制包解压所得文件放到该文件夹下
3. 复制 mspdb100.dll 到 D:\SQLite3 文件夹 #
mspdb100.dll 文件在 C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
目录下
4. 运行Visual Studio 命令 #
打开cmd,切换到D:\SQLite3 目录下,运行
D:\SQLite3>“C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\lib.exe” /DEF:sqlite3.def /machine:IX86
生成 sqlite3.lib 文件。
配合已经存在sqlite3.h(源码包中)和sqlite3.dll 就可以使用sqlite3了。
参考资料 #
- https://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions
- How To Compile SQLite
- Windows下动态链接库的创建和使用(笔记)
- VS2010下编译sqlite3
- 在Visual Studio 2010中配置使用SQLite3
- SQLite3源码在Windows及WinCE平台下的编译方法
Linux 平台的参见 基于sqlite3实现的简单通讯录程序(控制台)