Win10编译SqlCipher步骤
准备工作
- Visual Studio 2015,其他版本未验证,估计问题不大
- ActiveState ActivePerl,用于编译OpenSSL
- Mingw,在官网下载minimum installer安装即可
- nasm,汇编代码运行环境,官网下载安装即可
- ActiveState ActiveTcl,需要用到tclsh工具
以上软件请预先安装,注意部分软件安装后需要手动添加环境变量
- OpenSSL源码,在官网下载即可
- SqlCipher源码,在官网下载即可
安装OpenSSL
管理员权限打开VS2015的命令行窗口,并利用
cd /d XXX命令切换到OpenSSL目录下执行以下命令:
perl Configure VC-WIN32nmakenmake test如果配置成功,该步骤会输出All tests Successfulnmake install正式安装命令,32位机器默认安装于C:\Program Files (x86)\OpenSSL文件夹
现在安装目录下生成了两个库文件:
- 动态库文件libcrypto-1_1.dll(位于./bin目录下)
- 静态库文件libcrypto.lib (位于./lib目录下)
编译SqlCipher
- 将上一步生成的两个库文件复制到SqlCipher主目录下
- 管理员权限运行C:\mingw\msys\1.0\msys.bat批处理文件,进入msys shell命令环境
- 利用命令
cd /d XXX切换到SqlCipher目录 - 修改sqlite3.c文件,在文件的最开始部分添加以下代码:
#define SQLITE_HAS_CODEC 1
#define SQLITE_ENABLE_RTREE 1
#define SQLITE_ENABLE_COLUMN_METADATA 1
#define SQLITE_TEMP_STORE 2 - 继续修改sqlite3.c文件,在文件的最后添加以下代码:
#include <sqlcipher/crypto.c> /*** SQLCIPHER ADDITION ***/
#include <sqlcipher/crypto_cc.c> /*** SQLCIPHER ADDITION ***/
#include <sqlcipher/crypto_impl.c> /*** SQLCIPHER ADDITION ***/
#include <sqlcipher/crypto_openssl.c> /*** SQLCIPHER ADDITION ***/
#include <sqlcipher/pager.c> /*** SQLCIPHER ADDITION ***/ - 运行以下命令进行配置(注意这是一行):
./configure --enable-tempstore=yes --with-crypto-lib=none --disable-tcl CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DNOCRYPT -lcrypto -DSQLCIPHER_CRYPTO_OPENSSL -I/c/progra~2/OpenSSL/include /d/MySoftware/sqlcipher/sqlcipher-master/libcrypto.dll -L/d/MySoftware/sqlcipher/sqlcipher-master/ -static-libgcc" LDFLAGS="libcrypto.lib"
- 执行命令:
make cleanmake,生成可执行文件sqlcipher.exemake dll,生成库文件sqlite3.dll
到目前为止,Sqlcipher源码就编译完成了。接下来就可以参考第一篇参考文章尽情使用该软件啦。
参考文章
本文写作时部分引用上述两篇文章,特此感谢。
Win10编译SqlCipher步骤的更多相关文章
- CentOS6-Linux内核编译 详细步骤
CentOS6-Linux内核编译 详细步骤 背景 Win10用VMwareWorkstation搭的虚拟机 CentOS6.5,内核版本2.6.32-431.el6.x86_64 在该环境下升级至4 ...
- Ubuntu下编译SqlCipher以及解密微信数据库EnMicroMsg.db过程和坑
wget https://codeload.github.com/sqlcipher/sqlcipher/zip/v3.4.2 ./configure --enable-tempstore=yes C ...
- Ubuntu安装 Alisql编译安装步骤:
github地址: https://github.com/alibaba/AliSQL 一.直接git下载保存到本地: git clone https://github.com/alibaba/Ali ...
- Java文件手动编译执行步骤
Java编译执行步骤: 1)将 Java 代码编写到扩展名为 .java 的文件中.2)通过 javac 命令对该 java 文件进行编译.3)通过 java 命令对生成的 class 文件进行运行. ...
- 用VS2015编译sqlcipher
简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...
- android4.0浏览器在eclipse中编译的步骤
工程源码: 注意: 如果下载已经修过的源码,只要进行3.4.8步骤就应该可以了. eclipse版本:adt-bundle-windows (Android Developer Tools Build ...
- How to compile and install NCAR Command Language on IBM PowerPC 64 --- NCL编译安装步骤
作者:Sinsonglew 出处:http://www.cnblogs.com/sinsonglew 欢迎转载,也请保留这段声明.thanks :) 注记:NCL官方依赖安装包全集列表.官方源码编译指 ...
- Qt creator自定义编译运行步骤
一直用Qt creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃了MFC,平时写个小工具还得靠Qt,正好一举两用. 用Qt creator开发一般的工程,是不用修改编译 ...
- VS2017编译SNMP++步骤记录
1.下载地址:https://www.agentpp.com/download.html 三个都下 2.新建解决方案 TestSnmp 3.下载后解压到解决方案文件夹(注意,解压后的 snmp++的版 ...
随机推荐
- APACHE 服务器开启URL REWRITE模块的方法
最近做wordpress,发现固定链接总是设置不了.后来发现是由于apache服务器的URL REWIRITE模块没有开启导致. 查询了资料之后终于设置成功,记录下步骤: 1:开启apache的url ...
- SQL中MAX()
列column_name中的数据可以是数值.字符串或是日期时间数据类型.
- HTML <td> 标签的 rowspan 属性
rowspan 属性规定单元格可横跨的行数. colspan 属性规定单元格可横跨的列数.
- mysql 两个时间段的差,可以是秒,天,星期,月份,年...
SELECT TIMESTAMPDIFF(SECOND, now(), "2012-11-11 00:00:00") 语法为:TIMESTAMPDIFF(unit,datetime ...
- 在Word2010文档中显示域代码而非域值
当Word2010文档中含有域内容时,默认情况下显示域值,这样可以使插入的域内容清晰明了.用户可以根据需要选择显示域代码或显示域值,操作步骤如下所述: 步骤/方法 第1步,打开Word2010文档窗口 ...
- Django中的F和Q函数
内容简介: 介绍Django中的F和Q作用以及使用方法 一.F介绍 作用:操作数据表中的某列值,F()允许Django在未实际链接数据的情况下具有对数据库字段的值的引用,不用获取对象放在内存中再对字段 ...
- vuex Loding加载..
技术栈:vuex,mapActions, mapState 先在vuex的状态管理里定义好loding状态,以及加载文字 import Vue from 'vue'; import Vuex from ...
- python_开发规范
对于python有哪些开发规范? 1. 每行代码不超过80字符 2. 不要在逗号, 分号, 冒号前加空格, 应该之后加空格 3. 列表, 索引,切片的左括号前不加空格 4. 比较运算前后 加一个空格 ...
- 配置SESSION超时与请求超时
<!--项目的web.xml中 配置SESSION超时,单位是min.用户在线时间.如果不设置,tomcat下的web.xml的session-timeout为默认.--><sess ...
- junit测试延伸--私有方法测试
关于junit测试的延伸,这里有类概念级别的测试,继承类的测试,接口的测试,抽象类的测试,关于这些类级别的测试,这里我就不做多的赘述了. 关于上面的几个测试就是说,我们不应该单纯的去测试类中的一些方法 ...