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:\mingw\msys\1.0\msys.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

本文寫作時部分引用上述兩篇文章,特此感謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM