window编译sqlite3

windows cpp 编译sqlite3

下载 https://www.sqlite.org/2019/sqlite-preprocessed-3280000.zip
解压D:\sqlite-preprocessed-3280000

把.c和.h文件分离,创建一个include文件夹用来存放.h文件

  1. 打开visual studio 2017 创建一个c++控制台项目

名称:sqlitetest

  1. 添加头文件

解决方案资源管理器 -》头文件 -》 右键 -》添加 -》现有项

选中include中所有的.h文件

  1. 添加.c文件

解决方案资源管理器 -》源文件 -》 右键 -》添加 -》现有项

选中所有的.c文件

  1. 编译
    visual studio 菜单栏 -》项目 -》sqlitetest属性

配置:Release

配置属性 -》C/C++ -》常规 -》附加包含目录 -》点击编辑

点击带*的文件夹图标 -》点击… -》选中D:\sqlite-preprocessed-3280000\include

配置属性 -》C/C++ -》优化 -》内联函数扩展 -》已禁用

visual studio 工具栏 -》Debug 改成 Release

visual studio 菜单栏 -》生成 -》生成解决方案

解决编译报错

  1. 找到sqlite3ext.h

在#define SQLITE3EXT_H 下一行添加 #define SQLITE_CORE 1

  1. 排除文件
    fts1.c, fts2.c, icu.c, tclsqlite.c, fts3_tokenizer.c

右键 -》从项目中排除

这样就可以编译成功了

编写测试代码 sqlitetest.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "sqlite3.h"

int create(sqlite3** db) {
int rc = sqlite3_open("test.db", db);
std::string sql = "create table if not exists test(name text)";
rc = sqlite3_exec(*db, sql.c_str(), NULL, NULL, NULL);
std::cout << "rc:" << rc << "\n";
return rc;
}

int main()
{
std::cout << "Hello World!\n";
sqlite3* db = NULL;
int rc = create(&db);
return 0;
}

visual studio 工具栏 -》 点击本地Windows调试器

会看到

1
2
Hello World!
rc:0