Windows下sqlite3的编译使用总结

方法一 源码加入项目,直接使用

1. 下载 sqlite-amalgamation-3080401.zip 源码包

这是一个源代码的合并包,sqlite3源代码的所有文件都被合并成了一个sqlite3.c文件

2. 解压源码包

解压目录包括四个文件

  1. (1) sqlite3.c      : 源代码合并的文件
  2. (2) sqlite3.h      : 头文件
  3. (3) sqlite3ext.h : 支持动态扩展功能时替换sqlite3.h使用。动态扩展的意思是不需要重新编译sqlite就可以添加新的函数和规则。(动态扩展是试验性质的功能,后期可能转为正式也可能剔除)[1]
  4. (4) shell.c         : 命令行交互程序。就是一个main()函数,一个循环结构,提示用户输入命令,然后sqlite3执行该命令[2]

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. 后者为模块定义文件,用于编译动态链接库时防止名字改编(详见[3])。

3. 编译源码

以Visual Studio 2010为例[4]。

(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了。

参考资料

Linux 平台的参见 基于sqlite3实现的简单通讯录程序(控制台)

作者:JarvisChu
原文链接:Windows下sqlite3的编译使用总结
版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

发表评论