为Android和iOS构建OpenSSL CURL

时间:2018-10-25 12:55:04

标签: c++ sockets openssl cross-platform

我正在为Android和iOS编写本机C ++库。该库将用于回答Web请求。为此,我在“ https://github.com/OlehKulykov/libnhr”中找到了一个库。有很多问题,我将解决这些问题,现在工作正常。但是,它不支持HTTPS(SSL)连接。我搜索了一下,发现使用OpenSSL和cURL库。为此,我使用了“ https://github.com/leenjewel/openssl_for_ios_and_android”中的步骤来编译OpenSSL和cURL跨平台。在Linux和MacOS上构建成功。但是,当我将显式的静态文件(libSSL.a,libCrypto.a,libcURL.a)包含到我的c ++库中时,我可以看到除SSL方法之外的许多OpenSSL库方法。 我无法在这一点上成功。当我在github上使用可用文件时,它给我相同的结果。我可以使用OpenSSL的加密MD5方法,但是当我尝试使用SSL方法时,它给了我错误。 这是一个示例方法及其错误。

#include "WSocketTest.h"
#include <openssl/ssl.h>
#include <openssl/md5.h>
#include <curl/curl.h>
JNIEXPORT jstring JNICALL WSocket(JNIEnv *env, jobject obj) {
   CURL * curl =curl_easy_init();
   return NULL;
}

libssl.a(ssl_lib.o):ssl_lib.c:function ssl_undefined_function:error:undefined reference to'ERR_put_error'

libssl.a(ssl_lib.o):ssl_lib.c:function tlsa_free:错误:未定义对'CRYPTO_free'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function tlsa_free:错误:未定义对'EVP_PKEY_free'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function tlsa_free:错误:未定义对'CRYPTO_free'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function ct_strict:错误:未定义对'OPENSSL_sk_num'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function ct_strict:错误:未定义对'OPENSSL_sk_value'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function ct_strict:error:对'SCT_get_validation_status'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function ct_strict:error:对'ERR_put_error'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set_ssl_version:错误:未定义对'OPENSSL_sk_num'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set_ssl_version:错误:未定义对``ERR_put_error''的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_up_ref:error:对'CRYPTO_atomic_add'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set_session_id_context:错误:未定义对“ ERR_put_error”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set_generate_session_id:错误:未定义对'CRYPTO_THREAD_write_lock'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set_generate_session_id:错误:未定义对'CRYPTO_THREAD_unlock'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_generate_session_id:错误:未定义对'CRYPTO_THREAD_write_lock'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_generate_session_id:错误:未定义对'CRYPTO_THREAD_unlock'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_has_matching_session_id:错误:未定义对“ CRYPTO_THREAD_read_lock”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_has_matching_session_id:错误:未定义对“ OPENSSL_LH_retrieve”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_has_matching_session_id:错误:未定义对“ CRYPTO_THREAD_unlock”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set_purpose:错误:对'X509_VERIFY_PARAM_set_purpose'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_purpose:错误:未定义对'X509_VERIFY_PARAM_set_purpose'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set_trust:错误:未定义对'X509_VERIFY_PARAM_set_trust'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_trust:错误:未定义对'X509_VERIFY_PARAM_set_trust'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set1_host:错误:未定义对'X509_VERIFY_PARAM_set1_host'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_add1_host:错误:未定义对'X509_VERIFY_PARAM_add1_host'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_hostflags:错误:未定义对'X509_VERIFY_PARAM_set_hostflags'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get0_peername:错误:对'X509_VERIFY_PARAM_get0_peername'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对'CRYPTO_zalloc'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对'CRYPTO_zalloc'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对'OBJ_nid2sn'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对“ EVP_get_digestbyname”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对'OBJ_nid2sn'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对“ EVP_get_digestbyname”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对“ CRYPTO_free”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_enable:错误:未定义对“ CRYPTO_free”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get0_dane_authority:错误:未定义对“ OPENSSL_sk_num”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get0_dane_tlsa:错误:未定义对'OPENSSL_sk_num'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'CRYPTO_zalloc'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'CRYPTO_malloc'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'd2i_PUBKEY'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'OPENSSL_sk_value'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'OPENSSL_sk_insert'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'EVP_MD_size'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'd2i_X509'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'X509_get0_pubkey'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'OPENSSL_sk_push'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'X509_free'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对“ EVP_PKEY_free”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对“ EVP_PKEY_free”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对“ EVP_PKEY_free”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'X509_free'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_dane_tlsa_add:错误:未定义对'OPENSSL_sk_new_null'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_mtype_set:错误:未定义对'CRYPTO_realloc'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_dane_mtype_set:错误:未定义对'CRYPTO_realloc'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_set1_param:error:undefined reference to'X509_VERIFY_PARAM_set1'

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set1_param:error:对'X509_VERIFY_PARAM_set1'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set0_rbio:error:对'BIO_free_all'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set0_wbio:错误:未定义对“ BIO_pop”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set0_wbio:错误:未定义对“ BIO_free_all”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set0_wbio:error:未定义对'BIO_push'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_wbio:错误:未定义对“ BIO_next”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_bio:错误:未定义对“ BIO_up_ref”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_rfd:error:未定义对'BIO_find_type'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_rfd:error:未定义对'BIO_ctrl'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_wfd:错误:未定义对“ BIO_find_type”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_wfd:错误:未定义对“ BIO_ctrl”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_fd:错误:未定义对“ BIO_s_socket”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_fd:错误:未定义对“ BIO_new”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_fd:error:未定义对'BIO_int_ctrl'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_wfd:error:未定义对'BIO_method_type'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_wfd:error:对'BIO_s_socket'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_wfd:错误:未定义对“ BIO_new”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_wfd:error:对'BIO_int_ctrl'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_wfd:error:未定义对'BIO_ctrl'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_wfd:error:对'BIO_up_ref'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_rfd:error:对'BIO_method_type'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_rfd:error:未定义对'BIO_s_socket'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_rfd:错误:未定义对“ BIO_new”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_rfd:error:对'BIO_int_ctrl'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_rfd:error:未定义对'BIO_ctrl'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_rfd:error:对'BIO_up_ref'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_verify_depth:错误:对'X509_VERIFY_PARAM_get_depth'的未定义引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_get_verify_depth:错误:未定义对'X509_VERIFY_PARAM_get_depth'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_set_verify_depth:错误:未定义对'X509_VERIFY_PARAM_set_depth'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_peer_certificate:错误:未定义对“ X509_up_ref”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_copy_session_id:错误:未定义对“ CRYPTO_atomic_add”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_CTX_check_private_key:错误:未定义对“ X509_check_private_key”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_check_private_key:错误:未定义对“ X509_check_private_key”的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_all_async_fds:错误:未定义对'ASYNC_WAIT_CTX_get_all_fds'的引用

libssl.a(ssl_lib.o):ssl_lib.c:function SSL_get_changed_async_fds:错误:对'ASYNC_WAIT_CTX_get_changed_fds'的未定义引用

0 个答案:

没有答案