準備工作
- Visual Studio 2015,其他版本未驗證,估計問題不大
- ActiveState ActivePerl,用于編譯OpenSSL
- Mingw,在官網下載下傳minimum installer安裝即可
- nasm,彙編代碼運作環境,官網下載下傳安裝即可
-
ActiveState ActiveTcl,需要用到tclsh工具
以上軟體請預先安裝,注意部分軟體安裝後需要手動添加環境變量
- OpenSSL源碼,在官網下載下傳即可
- SqlCipher源碼,在官網下載下傳即可
安裝OpenSSL
- 管理者權限打開VS2015的指令行視窗,并利用
指令切換到OpenSSL目錄下cd /d XXX
- 執行以下指令:
-
perl Configure VC-WIN32
-
nmake
-
如果配置成功,該步驟會輸出All tests Successfulnmake test
-
正式安裝指令,32位機器預設安裝于C:\Program Files (x86)\OpenSSL檔案夾nmake install
-
- 現在安裝目錄下生成了兩個庫檔案:
- 動态庫檔案libcrypto-1_1.dll(位于./bin目錄下)
- 靜态庫檔案libcrypto.lib (位于./lib目錄下)
編譯SqlCipher
- 将上一步生成的兩個庫檔案複制到SqlCipher主目錄下
- 管理者權限運作C:\mingw\msys\1.0\msys.bat批處理檔案,進入msys shell指令環境
- 利用指令
切換到SqlCipher目錄cd /d XXX
- 修改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 clean
-
,生成可執行檔案sqlcipher.exemake
-
,生成庫檔案sqlite3.dllmake dll
-
到目前為止,Sqlcipher源碼就編譯完成了。接下來就可以參考第一篇參考文章盡情使用該軟體啦。
參考文章
How to compile SQLCipher for Windows Desktop.
用VS2015編譯sqlcipher
本文寫作時部分引用上述兩篇文章,特此感謝。
『注:本文來自部落格園“小溪的部落格”,若非聲明均為原創内容,請勿用于商業用途,轉載請注明出處http://www.cnblogs.com/xiaoxi666/』