【问题标题】:SQLCipher + POCO C++SQLCipher + POCO C++
【发布时间】:2012-06-08 08:20:06
【问题描述】:

我正在尝试在我的 Mac Lion 上将 POCO 的 sqlite 替换为 sqlcipher。关于构建过程和替换的信息不多,但是我想我应该试一试。

我已经合并了 sqlcipher,然后我将 Data/Sqlite/src Poco 目录中的 sqlite3.c 和 sqlite3.h 替换为 sqlcipher 的那些,将 SQLITE_HAS_CODEC 和 SQLITE_TEMP_STORE=2 参数添加到 Makefile 并尝试构建这整件事。

但是我收到以下错误:

Undefined symbols for architecture x86_64:
  "_EVP_get_cipherbyname", referenced from:
      _sqlcipher_activate in sqlite3.o
      _sqlcipher_codec_ctx_set_cipher in sqlite3.o
  "_OPENSSL_add_all_algorithms_noconf", referenced from:
      _sqlcipher_activate in sqlite3.o
  "_RAND_bytes", referenced from:
      _sqlcipher_random in sqlite3.o
  "_EVP_CIPHER_key_length", referenced from:
      _sqlcipher_codec_ctx_set_cipher in sqlite3.o
  "_EVP_CIPHER_iv_length", referenced from:
      _sqlcipher_codec_ctx_set_cipher in sqlite3.o
  "_EVP_CIPHER_block_size", referenced from:
      _sqlcipher_codec_ctx_set_cipher in sqlite3.o
  "_EVP_sha1", referenced from:
      _sqlcipher_codec_ctx_set_cipher in sqlite3.o
      _sqlcipher_page_hmac in sqlite3.o
  "_EVP_MD_size", referenced from:
      _sqlcipher_codec_ctx_set_cipher in sqlite3.o
  "_HMAC_CTX_init", referenced from:
      _sqlcipher_page_hmac in sqlite3.o
  "_HMAC_Init_ex", referenced from:
      _sqlcipher_page_hmac in sqlite3.o
  "_HMAC_Update", referenced from:
      _sqlcipher_page_hmac in sqlite3.o
  "_HMAC_Final", referenced from:
      _sqlcipher_page_hmac in sqlite3.o
  "_HMAC_CTX_cleanup", referenced from:
      _sqlcipher_page_hmac in sqlite3.o
  "_EVP_CipherInit", referenced from:
      _sqlcipher_page_cipher in sqlite3.o
  "_EVP_CIPHER_CTX_set_padding", referenced from:
      _sqlcipher_page_cipher in sqlite3.o
  "_EVP_CipherUpdate", referenced from:
      _sqlcipher_page_cipher in sqlite3.o
  "_EVP_CipherFinal", referenced from:
      _sqlcipher_page_cipher in sqlite3.o
  "_EVP_CIPHER_CTX_cleanup", referenced from:
      _sqlcipher_page_cipher in sqlite3.o
  "_PKCS5_PBKDF2_HMAC_SHA1", referenced from:
      _sqlcipher_cipher_ctx_key_derive in sqlite3.o
ld: symbol(s) not found for architecture x86_64

以前有人试过吗?有人知道对此的潜在解决方法吗?谢谢!

【问题讨论】:

  • 嗨,你能分享一下 poco/sqlite/src 中的哪些源代码应该用 ciphter 替换吗?谢谢

标签: sqlite build sqlcipher poco-libraries


【解决方案1】:

那些是 OpenSSL 符号,所以你可能没有链接到 libcrypto。将-lcrypto 添加到链接器标志。

【讨论】:

  • 是的,成功了!我链接不正确。非常感谢您的帮助!
猜你喜欢
  • 2013-10-07
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
相关资源
最近更新 更多