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

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
in_out, create_time) VALUES (1003, 102, 0, NOW()); ``` 查询学号为 1001 的学生最后一次的出入登记记录: ``` SELECT * FROM register WHERE student_id = 1001 ORDER BY create要在 Windows 平台编译 Linux 的 .so (共享库),您需要使用交叉编译工具链。以下_time DESC LIMIT 1; ``` 查询宿舍编号为 101 的宿舍最后一次的进入登记记录: 是一个大致的步骤: 1. 下载并安装交叉编译工具链,例如 MinGW-w64 或``` SELECT * FROM register WHERE dormitory_id = 101 AND in_out = 0 ORDER BY create_time DESC LIMIT 1; `` Cygwin。 2. 从 Linux 平台上获得一个可用的头文件和库文件。 3. 创建一个交叉编译工具链配置文件,指定编译器、链接器、头文件和库文件的位置。 4. 编` 5. 宿舍卫生检查 创建一个出入登记表 register,包含以下字段: - id:登记写 Makefile 文件,指定编译和链接的命令,并指定输出 .so 文件的名称和位置。 5. 使用编号 - student_id:学生编号 - dormitory_id:宿舍编号 - in_out:进出类型(0 表交叉编译工具链编译和链接您的代码,生成 .so 文件。 请注意,编译和链接的命示进入,1 表示离开) - create_time:登记时间 向出入登记表中插入数据: 令可能会有所不同,具体取决于您使用的交叉编译工具链和您的代码。此``` INSERT INTO register (student_id, dormitory_id, in_out, create_time) VALUES (1001, 101, 0外,一些库可能不支持跨平台编译,您可能需要查阅相关文档或联系库的开发人员以获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值