Windows10 安装编译 sqlcipher-v4.10.0(截至当前最新版)
Windows10 安装编译 sqlcipher-4.10.0(截至当前最新版)
1.编译64位版本
第1步,编译准备
-
安装 ActiveTcl 8.6,官网下载需要登录,这里提供一个网盘下载蓝奏云下载,密码:
f9cf,需要用到其中的tclsh.exe,安装后,会默认添加到系统环境变量,可查看:path=C:\ActiveTcl\bin,验证是否安装成功,可在CMD输入tclsh,不报错即成功

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

-
安装 Win64 OpenSSL(版本随意,只要位数对就行,且需要安装哇完整版。我这里用
Win64 OpenSSL v3.4.0)。加不加环境变量都可以。随意
第2步,编译 sqlcipher x64 v4.10.0
- 下载 sqlcipher,可直接克隆,或者下载压缩包
git clone https://github.com/sqlcipher/sqlcipher.git
git checkout -b v4.10.0 v4.10.0
- 打开 Visual Studio 的 x64工具
,执行下的操作
# 切换到sqlcipher-4.10.0目录
cd /d H:\Projects\sqlcipher-4.10.0
# 编译
nmake /f Makefile.msc clean
nmake /f Makefile.msc sqlite3.c

- 编译输出
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

- 编译输出
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

第3步,验证编译结果
- 执行以下命令不报错
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;

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

2.编译32位版本,此处不演示
与编译64位版本时相同的,只需要注意OpenSSL 32位,且使用Visual Studio 的 x86工具
3.SQLCipher旧版本编译差异
编译 sqlcipher x64 v4.7.0之前的版本,如v4.6.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
- 编译输出
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
本文来自博客园作者:星尘的博客,转载请注明出处:https://www.cnblogs.com/yqbaowo/p/19021737

浙公网安备 33010602011771号