在Mac OS 10.8(64位)上编译SQLCipher

时间:2013-04-11 15:39:40

标签: macos static-libraries 32bit-64bit sqlcipher

当我在MacOS 64bit上编译SQLCIPHER时

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

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

我怎么能这样做?

2 个答案:

答案 0 :(得分:6)

新版本的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库。

答案 1 :(得分:0)

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