• Win10编译SqlCipher步骤


    准备工作

    • Visual Studio 2015,其他版本未验证,估计问题不大
    • ActiveState ActivePerl,用于编译OpenSSL
    • Mingw,在官网下载minimum installer安装即可
    • nasm,汇编代码运行环境,官网下载安装即可
    • ActiveState ActiveTcl,需要用到tclsh工具

      以上软件请预先安装,注意部分软件安装后需要手动添加环境变量

    • OpenSSL源码,在官网下载即可
    • SqlCipher源码,在官网下载即可

    安装OpenSSL

    1. 管理员权限打开VS2015的命令行窗口,并利用cd /d XXX命令切换到OpenSSL目录下

    2. 执行以下命令:

      • perl Configure VC-WIN32
      • nmake
      • nmake test 如果配置成功,该步骤会输出All tests Successful
      • nmake install 正式安装命令,32位机器默认安装于C:Program Files (x86)OpenSSL文件夹
    3. 现在安装目录下生成了两个库文件:

      • 动态库文件libcrypto-1_1.dll(位于./bin目录下)
      • 静态库文件libcrypto.lib (位于./lib目录下)

    编译SqlCipher

    1. 将上一步生成的两个库文件复制到SqlCipher主目录下
    2. 管理员权限运行C:mingwmsys1.0msys.bat批处理文件,进入msys shell命令环境
    3. 利用命令cd /d XXX切换到SqlCipher目录
    4. 修改sqlite3.c文件,在文件的最开始部分添加以下代码:
      #define SQLITE_HAS_CODEC 1
      #define SQLITE_ENABLE_RTREE 1
      #define SQLITE_ENABLE_COLUMN_METADATA 1
      #define SQLITE_TEMP_STORE 2
      
    5. 继续修改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 ***/	
      
    6. 运行以下命令进行配置(注意这是一行):
      ./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"
      
    7. 执行命令:
      • make clean
      • make,生成可执行文件sqlcipher.exe
      • make dll,生成库文件sqlite3.dll

    到目前为止,Sqlcipher源码就编译完成了。接下来就可以参考第一篇参考文章尽情使用该软件啦。

    参考文章

    How to compile SQLCipher for Windows Desktop.

    用VS2015编译sqlcipher

    本文写作时部分引用上述两篇文章,特此感谢。

    『注:本文来自博客园“小溪的博客”,若非声明均为原创内容,请勿用于商业用途,转载请注明出处http://www.cnblogs.com/xiaoxi666/』
  • 相关阅读:
    js键盘事件以及键盘事件拦截
    GO-&获取地址与*解引用
    Go-map
    第22课
    第21课
    第20课
    基于spring+quartz的分布式定时任务框架
    DeepLearning (三) 预处理:主成分分析与白化
    白化whitening
    如何使用RestTemplate访问restful服务
  • 原文地址:https://www.cnblogs.com/xiaoxi666/p/7777949.html
Copyright © 2020-2023  润新知