sqlcipher windows 平臺編譯方法

sqlcipher windows 平臺編譯方法

預先準備條件:

1、OpenSSL windows平臺下的庫
2、MingW 環境,包括一些編譯開發工具,如 gcc-g++、tclsh
3、sqlcipher 源碼


對於 1:OpenSSL windows平臺下的庫比較好編,源碼中直接有VS工程,網上也有教程。我編的是靜態庫,編譯好後會有兩個dll和兩個lib文件: libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib;一個include文件夾,裏面是openssl頭文件。

對於 2:MingW 在線安裝被牆,這裏用的離線安裝。參考http://www.swingworks.net/2010/11/install_mingw_and_msys_with_mingw-get-inst/ 來進行安裝。
  當時我先使用cygwin進行編譯。
cygwin 下編譯提示:configure: error: C compiler cannot create executables 查了好久也沒找到原因。遂放棄改用MIngW。
  後面了下,cygwin和MingW初衷不一。 MingW用來移植Linux上的應用到Winodws平臺;cygwin用於在Windows環境下開發Linux程序。
  tclsh MingW 安裝時。下載windows 版本安裝,安裝後再MingW bash中試試命令是否可以正確識別。下載:https://www.activestate.com/activetcl


開始編譯:

1、使用MingW bash,進入sqlcipher 源碼所在文件,這裏是D:\sqlcipher
2、把libeay32.dll 拷貝到當前目錄
執行 ./configure –with-crypto-lib=none –disable-tcl CFLAGS=”-DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -I/d/openss/include /d/sqlcipher/libeay32.dll -L/d/sqlcipher/ -static-libgcc” LDFLAGS=”-leay32”

  其中/d/openss/include 即openssl編譯後生成的include文件夾,裏面一堆頭文件

3、make clean
make sqlite3.c
make
make dll
執行完這幾步後,會在sqlcipher目錄下生成所需要的sqlite3.c sqlite3.h sqlite3.dll

4、打開VS 命令工具,cd 到sqlcipher目錄
執行 lib /def:sqlite3.def
會生成sqlite3.lib

至此,過程完畢。第3步make過程中提示缺什麼在安裝什麼。比如提示tclsh command not found, 安裝tclsh 即可

  這樣後面可以直接使用靜態庫或是編slite3.c 源碼都可以了

其他

如果不需要跨平臺統一版本編譯,則可使用現成的庫
android平臺:https://github.com/sqlcipher/android-database-sqlcipher/
windows平臺:https://github.com/CovenantEyes/sqlcipher-windows


References: http://www.jerryrw.com/howtocompile.php

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章