Windows10 安装编译 sqlcipher-v4.10.0(截至当前最新版)

Windows10 安装编译 sqlcipher-4.10.0(截至当前最新版)

1.编译64位版本

第1步,编译准备

  1. 安装 ActiveTcl 8.6,官网下载需要登录,这里提供一个网盘下载蓝奏云下载,密码:f9cf,需要用到其中的 tclsh.exe,安装后,会默认添加到系统环境变量,可查看:path=C:\ActiveTcl\bin,验证是否安装成功,可在CMD输入tclsh,不报错即成功
    image

  2. 安装Microsoft Visual Studio 2022 x64 点击前往网盘下载,密码:cpf5 只安装 C++ 桌面开发,此处你安装最新版的 Visual Studio 也行,注意软件位数
    image

  3. 安装 Win64 OpenSSL(版本随意,只要位数对就行,且需要安装哇完整版。我这里用Win64 OpenSSL v3.4.0)。加不加环境变量都可以。随意


第2步,编译 sqlcipher x64 v4.10.0

  1. 下载 sqlcipher,可直接克隆,或者下载压缩包
git clone https://github.com/sqlcipher/sqlcipher.git
git checkout -b v4.10.0 v4.10.0
  1. 打开 Visual Studio 的 x64工具image,执行下的操作
# 切换到sqlcipher-4.10.0目录
cd /d H:\Projects\sqlcipher-4.10.0

# 编译
nmake /f Makefile.msc clean
nmake /f Makefile.msc sqlite3.c

image

  1. 编译输出 sqlcipher.dll(可选)
# 注意修改其中的 OpenSSL 的安装路径
cl -I"D:\Program Files\OpenSSL-Win64\include" sqlite3.c -DSQLITE_API=__declspec(dllexport) -DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC -DSQLITE_EXTRA_INIT=sqlcipher_extra_init -DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown -DHAVE_STDINT_H /MT -link -dll -out:sqlcipher.dll -LIBPATH:"D:\Program Files\OpenSSL-Win64\lib\VC\x64\MD" libcrypto.lib libssl.lib advapi32.lib user32.lib

image

  1. 编译输出 sqlcipher.exe
# 注意修改其中的 OpenSSL 的安装路径
cl -I"D:\Program Files\OpenSSL-Win64\include" sqlite3.c shell.c -DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC -DSQLITE_OS_WIN -DSQLITE_EXTRA_INIT=sqlcipher_extra_init -DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown -DHAVE_STDINT_H /MT -link -out:sqlcipher.exe -LIBPATH:"D:\Program Files\OpenSSL-Win64\lib\VC\x64\MD" libcrypto.lib libssl.lib advapi32.lib user32.lib gdi32.lib

image


第3步,验证编译结果

  1. 执行以下命令不报错
sqlcipher.exe test.db

PRAGMA key='123456'; # 密码
CREATE TABLE test (id INTEGER PRIMARY KEY, data TEXT);
INSERT INTO test (data) VALUES ('test data');
SELECT * FROM test;

image

  1. 使用DB Browser for SQLite查看 test.db

image


2.编译32位版本,此处不演示

与编译64位版本时相同的,只需要注意OpenSSL 32位,且使用Visual Studio 的 x86工具image


3.SQLCipher旧版本编译差异

编译 sqlcipher x64 v4.7.0之前的版本,如v4.6.1是有所不同的,具体区别如下:

  1. 编译输出 sqlcipher.dll
# 注意修改其中的 OpenSSL 的安装路径
cl -I"D:\Program Files\OpenSSL-Win64\include" sqlite3.c -DSQLITE_API=__declspec(dllexport) -DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC /MT -link -dll -out:sqlcipher.dll -LIBPATH:"D:\Program Files\OpenSSL-Win64\lib\VC\x64\MD" libcrypto.lib libssl.lib advapi32.lib user32.lib gdi32.lib

  1. 编译输出 sqlcipher.exe,执行这一步是会报错的,报错信息中有这样一段话:shell.c(27722): error C2001: 常量中有换行符,所以我们需要去修改shell.c第27722行,删除多余的换行符,并保存。注意保存为UTF-8编码
# 注意修改其中的 OpenSSL 的安装路径
cl -I"D:\Program Files\OpenSSL-Win64\include" sqlite3.c shell.c -DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC -DSQLITE_OS_WIN /MT -link -out:sqlcipher.exe -LIBPATH:"D:\Program Files\OpenSSL-Win64\lib\VC\x64\MD" libcrypto.lib libssl.lib advapi32.lib user32.lib gdi32.lib


本文章的原文地址
GitHub主页

posted @ 2025-08-11 16:47  星尘的博客  阅读(648)  评论(2)    收藏  举报