依赖
TCL
这里TCL下载时会很缓慢,但是可以连接外网VPN,也可以在云服务器使用wget下载,当然下载前需要先登录,github或者邮箱都可以
这个程序的作用是用来生成相关代码的,当然你可以使用 amalgamation版本的sqlite,这样就不需要依赖tcl,并且简简单单的就四个文件,但是源文件8.5MB,自己使用VS新建工程,然后编译成dll库
准备
进入到sqlite目录
新建build文件夹
进入到build
再此目录下打开cmd,不要使用powershell,我第一次使用它时报了一系列错误,后来改用cmd就没啥事了
依次执行以下命令
这个是初始化环境变量,只在此cmd有效,不执行这个会在编译第一个文件lemon.c
时就报错,找不到stdio.h
所以这个初始化会将头文件和库文件路径放到环境变量下。(想要编译32位,则执行vcvars32.bat)
执行完后回到sqlite/build
目录
输入nmake /f ..\Makefile.msc sqlite3.dll TOP=..
会生成动态库
输入nmake /f ..\Makefile.msc sqlite3.exe TOP=..
会生成可执行程序
最后将sqlite3.h
、sqlite.lib
、sqlite.dll
拷贝出来放到自己环境中即可
如果想编译debug版本,则在命令后加入DEBUG=1
即可
测试
// debug x64版本, sqlite是release x64版本
#include <stdio.h>
#include <sqlite/sqlite3.h>
int main(int argc, char* argv[])
{
sqlite3* db;
int rc = sqlite3_open("test.db", &db);
if (rc) {
printf("can't open database: %s\n", sqlite3_errmsg(db));
} else {
printf("open database successfully\n");
sqlite3_close(db);
}
return 0;
}