2

当我在 MacOS 64 位上编译 SQLCIPHER

./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2" LDFLAGS="/Users/administrator/Documents/openssl/lib/libcrypto.a"

我得到 32bit lib libsqlite3.a 但我需要一个 64bit libsqlite3.a

我怎么能做到这一点?

4

2 回答 2

8

新版本的 SQLCIPHER 不再需要 OpenSSL。

您首先需要配置构建,这些是 CommonCrypto 的建议设置,而不是 SSL 作为加密提供者。

./configure --enable-load-extension --enable-tempstore=yes \
--with-crypto-lib=commoncrypto \
CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_ENABLE_FTS3" \ LDFLAGS="/System/Library/Frameworks/Security.framework/Versions/Current/Security"

然后你需要做到:

make

您将获得一个 64 位静态链接 SQLLite 库。

于 2015-11-25T18:02:01.210 回答
0

您是否已验证您正在链接 64 位版本,libcrypto.a因为您似乎正在自己构建 OpenSSL?./Configure darwin64-x86_64-cc如果您从 x86_64 的源代码构建 OpenSSL,您将需要运行。在系统上找到的 OpenSSL 版本应该包含架构的 i386 和 x86_64 版本,因此您不需要重新构建 OpenSSL。你能file .libs/sqlite在编译后运行并显示输出吗?

于 2013-04-23T16:40:01.707 回答