1. 准备工作:
(1)Visual Studio Enterprise 2015,Windows 7 Professional SP1 x64。
(2)访问sqlite官方链接https://www.sqlite.org/2017/sqlite-amalgamation-3080301.zip,下载sqlite3.8.3.1源代码“sqlite-amalgamation-3080301.zip,解压得到文件“shell.h”, “sqlite3.h”, “sqlite3.c”, “sqlite3ext.h”。
注1:官网下载页https://www.sqlite.org/download.html仅提供最新版本的源代码,但是历史版本的源代码可以通过编辑下载链接获取,例如笔者发文时sqlite下载页仅提供3.19.2.版本源代码https://www.sqlite.org/2017/sqlite-amalgamation-3190200.zip,其中“3190200”代表sqlite版本号,"2017"表示该版本的发布年份,历史版本可以从sqlite的开发时间线https://www.sqlite.org/src/timeline?y=ci获取发布年份。按照如下规则分隔“3190200”得到3 | 19 | 02 | 00,即可将其与3.19.2.对应起来,因此要想下载3.8.3.1版本或者其他版本,只需按照该规则编写对应的下载链接即可。
注2:编辑下载链接的方法同样适用于Precompiled Binaries for Windows即“sqlite3.dll”的下载,但是比较旧的版本例如3.8.3.1版本可能不提供64位DLL文件,这是此次使用MSVC编译sqlite3.dll的原因。
2. 开始编译:
(1) 打开Visual Studio,“新建项目”,在左侧依次选择“模板”--“Visual C++”--“Win32”,在中间选择“Win32控制台应用程序”,在下方输入项目“名称”以及项目“位置”之后,“确定”;
(2)“下一步”,“应用程序类型”中选择“DLL”,“附加选项”中勾选“空项目”,“完成”;
(3)在“解决方案管理器”中,右击“头文件”,“添加”,“现有项”,添加“sqlite3.h”和“sqlite3ext.h”。同理,添加源文件“sqlite3.c”;
(4)在“解决方案资源管理器”中右击解决方案名称,打开“属性”页。
a)在顶部“配置”中选择“Release”,平台选择“x64”。
b)在左侧依次展开“配置属性”--“常规”,将“目标文件名”改为“sqlite3”;
c)在左侧依次展开“C/C++”--“预处理器”,编辑“预处理器定义”,在末尾添加一行“SQLITE_API=__declspec(dllexport)”,“确定”。
注1:如果缺少此步骤,最后生成的sqlite3.dll文件在使用时可能会产生“不是有效的win32应用程序”或者“无法找到程序入口”等问题。
注2:第4行“SQLITE3DLLCOMPILATION_EXPORTS”取决于解决方案的名称,因人而异;
d)点击“确定”关闭“属性”页。;
(5)在Visual Studio工具栏,解决方案配置选择“Release”,解决方案平台选择“x64”;
(6)使用默认快捷键F7生成解决方案。
3. 至此64位3.8.3.1版本的sqlite3.dll已生成,位于解决方案的\x64\Release目录下。
注:第4行“SQLITE3DLLCOMPILATION_EXPORTS”取决于解决方案的名称,因人而异;