SQLCipher Windows下的编译

[ 15 天前 ]

从源码编译sqlcipher,可以修改源码,封装新的函数,导出dll

环境配置

安装完VS2010后将C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDEC:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\添加到环境变量。
打开C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC运行里面的vcvarsall.bat

安装完Nasm汇编器后将安装目录,默认C:\Users\XXX\AppData\Local\bin\NASM\添加到环境变量。

安装完MinGW后将C:\MinGW\bin添加到环境变量。
MinGW->Basic Setup安装mingw32-basemingw32-gcc-g++msys-base

安装完ActiveTcl后将C:\Tcl\bin添加到环境变量。

首先编译openssl

这里为了支持sqlcipher2.1.1我们使用openssl-1.0.1g版本
在D盘建立xBuild目录,将sqlcipher-2.2.1openssl-1.0.1g分别解压到xBuild目录里

管理员权限运行Visual Studio 命令提示(2010),进入D:\xBuild\openssl-1.0.1g目录。
依次运行以下命令:

perl Configure VC-WIN32 --prefix=D:\xBuild\openssl_build

ms\do_nasm

nmake -f ms\ntdll.mak

nmake -f ms\ntdll.mak install

perl Configure VC-WIN32 --prefix=D:\xBuild\openssl_build,这行命令是设定编译好的openssl放到D:\xBuild\openssl_build文件夹,这个文件夹不存在也没关系,会自己建的。
进到openssl_build中看看,有4个文件夹,都被生成了,就OK了。

编译sqlcipher

从openssl_build中找到把libeay32.dlllibeay32.lib直接放入D:\xBuild\sqlcipher2.1.1根目录中。
管理员权限运行C:\MinGW\msys\1.0\msys.batcd /可以进根目录,再cd d进入d盘,然后依次进入D:\xBuild\sqlcipher2.1.1目录中。
依次运行以下命令:

./configure --with-crypto-lib=none --disable-tcl CFLAGS="-DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -I/d/xBuild/openssl_build/include /d/xBuild/sqlcipher-2.2.1/libeay32.dll -L/d/xBuild/sqlcipher-2.2.1/ -static-libgcc" LDFLAGS="-leay32"

make clean

make sqlite3.c

make

make dll

OK!