如何编译SQLite源代码?
1.官方最新版SQLite下载地址:http://www.sqlite.org/download.html
打开上面的链接我们需要下载两个组件:1.SQLite的源码 2.SQLite的.def模块定义文件(用来生成lib文件和dll文件)如图:
页面往下找到:
2.配置步骤
将这两个文件下载下来解压到当前目录即可:
紧接着我们打开VS2010新建一个Win32应用程序,项目命名为sqlite3配置如图:
然后把刚才下载解压出来的文件复制到这个项目下如图:
粘贴到刚才新建的项目中并包含进项目:
包含进项目:
然后配置项目属性:
由于Release版和Debug版不能混用有,时候名字一样不好区分到底是哪个版本的库,所以Debug版加上d用以区分,到时候编译出来lib和dll会自动以d结尾
Release版这里默认即可,然后接着配置:
添加模块定义:
配置完毕直接编译得到lib和dll文件:
3.测试SQLite
接下来我们新建一个win32控制台项目,然后在这个项目中我们为sqlite新建几个文件夹:
把刚才用到的sqlite3.h和sqlite3ext.h复制进include中,把sqlite3d.lib复制到lib中,然后配置的控制台项目:
在项目中新建一个Main.cpp输入以下代码测试一下sqlite:
- #include "..\sqlite3\include\sqlite3.h"
- #include <assert.h>
- #define SQLITE_SAFE_CLOSE( Ptr ){ if( nullptr != Ptr ){ sqlite3_close( Ptr ); Ptr = nullptr; } }
- int main()
- {
- sqlite3* DataBase = nullptr;
- //打开或者创建数据库
- if( SQLITE_OK != sqlite3_open( "test.db", &DataBase ) )
- {
- assert( false );
- return 0;
- }
- //释放掉数据库
- SQLITE_SAFE_CLOSE( DataBase );
- return 0;
- }
#include "..\sqlite3\include\sqlite3.h" #include <assert.h> #define SQLITE_SAFE_CLOSE( Ptr ){ if( nullptr != Ptr ){ sqlite3_close( Ptr ); Ptr = nullptr; } } int main() { sqlite3* DataBase = nullptr; //打开或者创建数据库 if( SQLITE_OK != sqlite3_open( "test.db", &DataBase ) ) { assert( false ); return 0; } //释放掉数据库 SQLITE_SAFE_CLOSE( DataBase ); return 0; }编译运行一下,提示找不到sqlite3d.dll,把刚才生成的sqlite3d.dll复制到控制台的exe文件所在的目录下重新运行一下即可!
VS2010下编译sqlite3
首先下载源码,http://www.sqlite.org/download.html中第一个下载文件就是,下载sqlite-amalgamation-3071000.zip,当前版本是3.7.10,里面包含了四个文件,sqllite3.h、sqlite3.c、sqllite3ext.h、shell.c,shell.c暂时不用,由于源码中没有包含def文件,所幸其dll版本中包含了def文件,所以需要下载dll压缩包,下载地址和源码在同一个页面上,下载sqlite-dll-win32-x86-3071000.zip。
下面就是工程建立步骤:
1.新建VS2010新建一个“Win32 项目”,命名为:sqlite3。
2.在接下来的对话框中选择“DLL”类型,附加选项中选择“空项目”,点击“完成”。
3.解压压缩包,将sqllite3.h、sqlite3.c、sqlite3ext.h、sqlite3.def文件复制到工程文件夹下。
4.在工程的Include Files中添加sqlite3.h、sqlite3ext.h文件。
5.工程的Source Files中添加sqlite3.c、sqlite3.def文件。
6.设置模块定义文件sqlite3.def,否则生成的dll没有对应的lib ,如下图所示: