sqlcipher 构建 Windows 8

Posted

技术标签:

【中文标题】sqlcipher 构建 Windows 8【英文标题】:sqlcipher build windows 8 【发布时间】:2015-12-03 14:01:30 【问题描述】:

对正在运行的代码很陌生。我正在尝试按照本教程使用 MinGW msys 方法在 Windows 8 上构建 sqlcipher:http://www.jerryrw.com/howtocompile.php#

所有代码似乎都可以正常运行以构建 sqlcipher,但是当我在命令提示符下对其进行测试时,出现此错误:

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\Owner>cd c:\sqlcipher

c:\sqlcipher>sqlcipher test.db
sqlcipher: FATAL: Couldn't find sqlcipher.

有人有什么想法吗?构建应该已经创建了一个 sqlcipher 可执行 dll 文件和一个合并的 sqlite3.c 文件。在搜索中,找到 sqlite3.c 但没有 dll 文件。构建代码是:

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

make clean
make sqlite3.c
make
make dll

我认为错误是在 make dll 代码中,这里是:

$ make dll
echo 'EXPORTS' >sqlite3.def
nm .libs/sqlite3.o | grep ' T ' | grep ' _sqlite3_' \
            | sed 's/^.* _//' >>sqlite3.def
gcc -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -    I/c/opensslbuild32/include /c
/sqlcipher/libeay32.dll -L/c/sqlcipher/ -static-libgcc -DSQLITE_OS_WIN=1 -I.   -I/
c/sqlcipher/src -I/c/sqlcipher/ext/rtree -I/c/sqlcipher/ext/fts3 - D_HAVE_SQLITE_
CONFIG_H -DBUILD_sqlite -DNDEBUG  -DSQLITE_THREADSAFE=1   -shared -o  sqlite3.dll
 sqlite3.def \
            -Wl,"--strip-all" .libs/sqlite3.o

【问题讨论】:

【参考方案1】:

对于那些有同样问题的人,here 就是答案。

其实一切都是正确的。只需使用 sqlcipher.exe 而不是 sqlcipher 调用,因为 sqlcipher 二进制文件已经存在于某处。

【讨论】:

以上是关于sqlcipher 构建 Windows 8的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 项目中包含 SQLCipher pod 时如何避免构建错误?

将 FMDB + SQLCipher 与 Rubymotion 一起使用?

Android数据库加密与破解(Xposed hook SQLCipher 密码)

Android数据库加密与破解(Xposed hook SQLCipher 密码)

8SQL语言

虚拟机编译SqlCipher源码