2012-06-08 2 views
3

내 Mac Lion에서 POCO의 sqlite를 sqlcipher으로 대체하려고합니다. 빌드 프로세스 및 교체와 관련하여 많은 정보가 없지만 한 번 사용해보아야한다고 생각했습니다.SQLCipher + POCO C++

나는 sqlcipher 합병을했고, 그 다음에 sqlite3.c 및 sqlite3.h를 sqlcipher의 sqlite3.c 및 sqlite3.h를 sqlcipher의 sqlite3을 대체하고 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 

아무도 전에이 시도 했습니까? 아무도 이것에 대한 잠재적 인 해결책을 알고 있습니까? 감사!

답변

4

이들은 OpenSSL 기호이므로 libcrypto와 연결되어 있지 않을 수도 있습니다. 링커 플래그에 -lcrypto을 추가하십시오.

+0

그래, 트릭을 했어! 나는 틀리게 연결하고 있었다. 도움을 많이 주셔서 감사합니다! – deadringer