sqlcipher源码及编译

一、sqlcipher简介

sqlcipher是sqlite数据库包含加密解密的版本,也是开源软件。要正确编译这个软件,需要先正确编译openssl或者其他加密解密库,然后正确的链接到这个软件中。

二、编译过程

sqlcipher编译

  1. 从github上,下载sqlcipher
  2. 阅读根目录中的README.md文件。
  3. 根据类linux上的编译方法,修改makefile.msc文件
    1):增加SQLITE_HAS_CODEC宏
    !IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0
    CORE_COMPILE_OPTS = -DSQLITE_HAS_CODEC $(CORE_CCONV_OPTS) -DSQLITE_API=__declspec(dllexport)
    !ELSE
    CORE_COMPILE_OPTS = -DSQLITE_HAS_CODEC $(CORE_CCONV_OPTS)
    !ENDIF

$(SQLITE3EXE): shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLITE3H)
$(LTLINK) $(SHELL_COMPILE_OPTS) $(READLINE_FLAGS) -DSQLITE_HAS_CODEC shell.c $(SHELL_CORE_SRC)
/link $(SQLITE3EXEPDB) $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)

2):修改TLIBS的定义如下
!IF $(FOR_WINRT)!=0 || $(USE_CRT_DLL)!=0

TLIBS = libcrypto.lib
!ELSE
TLIBS = libcrypto_static.lib ws2_32.lib advapi32.lib user32.lib
!ENDIF

4:运行对应的vs编译命令行,创建bld路径。
使用 nmake /f …\sqlcipher-master\Makefile.msc TOP=…\sqlcipher-master,编译出缺省MT的运行包。
使用nmake /f …\sqlcipher-master\Makefile.msc TOP=…\sqlcipher-master FOR_WINRT=1

三、资源链接

我将修改了Makefile.msc的源文件包,再次打包存放到了百度网盘,有需要的可以下载尝试。
链接:https://pan.baidu.com/s/1Dd5JzxWNUkIDFqHoGAkxKA
提取码:a444

你可能感兴趣的:(c,开源)