Windows下sqlite3的编译使用总结

Windows下sqlite3的编译使用总结

Mar 12, 2014
Coding
C++, Sqlite

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

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

参考资料 #

  1. https://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions
  2. How To Compile SQLite
  3. Windows下动态链接库的创建和使用(笔记)
  4. VS2010下编译sqlite3
  5. 在Visual Studio 2010中配置使用SQLite3
  6. SQLite3源码在Windows及WinCE平台下的编译方法

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