準備工作 Visual Studio 2015,其他版本未驗證,估計問題不大 ActiveState ActivePerl,用於編譯OpenSSL Mingw,在官網下載minimum installer安裝即可 nasm,彙編代碼運行環境,官網下載安裝即可 ActiveState ActiveTc ...
準備工作
- Visual Studio 2015,其他版本未驗證,估計問題不大
- ActiveState ActivePerl,用於編譯OpenSSL
- Mingw,在官網下載minimum installer安裝即可
- nasm,彙編代碼運行環境,官網下載安裝即可
- ActiveState ActiveTcl,需要用到tclsh工具
以上軟體請預先安裝,註意部分軟體安裝後需要手動添加環境變數
- OpenSSL源碼,在官網下載即可
- SqlCipher源碼,在官網下載即可
安裝OpenSSL
-
管理員許可權打開VS2015的命令行視窗,並利用
cd /d XXX
命令切換到OpenSSL目錄下 -
執行以下命令:
perl Configure VC-WIN32
nmake
nmake 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 clean
make
,生成可執行文件sqlcipher.exemake dll
,生成庫文件sqlite3.dll
到目前為止,Sqlcipher源碼就編譯完成了。接下來就可以參考第一篇參考文章盡情使用該軟體啦。
參考文章
本文寫作時部分引用上述兩篇文章,特此感謝。