jasonacox / Build-OpenSSL-cURL

Scripts to build OpenSSL, HTTP/2 (nghttp2) and cURL (libcurl) for MacOS, iOS and tvOS devices (x86_64, armv7, armv7s, arm64, arm64e). Now Supporting Apple Silicon, OpenSSL 3.0.x with TLS 1.3 and Mac Catalyst builds.
MIT License
430 stars 129 forks source link

Undefined Symbol Error #52

Closed rahulbelekar closed 1 year ago

rahulbelekar commented 3 years ago

I am getting the following error when I include the libssl.a and libcrypto.a and build the project

Xcode 12.4 iOS 14.4

I am only using libssl and libcrypto in my project. Also I have the header path to the "include" folder. Any idea why the compiler is throwing the below error?

Undefined symbols for architecture arm64: "_OPENSSL_init_ssl", referenced from: __winpr_openssl_initialize in libwinpr2.a(ssl.o) "_EVP_MD_CTX_new", referenced from: _winpr_Digest_New in libwinpr2.a(hash.o) "_HMAC_CTX_free", referenced from: _winpr_HMAC_Free in libwinpr2.a(hash.o) "_EVP_CIPHER_CTX_reset", referenced from: _winpr_RC4_New_Internal in libwinpr2.a(cipher.o) "_BIO_set_next", referenced from: _bio_rdp_tls_ctrl in libfreerdp2.a(tls.o) "_BIO_meth_set_read", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o) "_TLS_server_method", referenced from: _tls_accept in libfreerdp2.a(tls.o) _schannel_openssl_server_init in libwinpr2.a(schannel_openssl.o) "_OPENSSL_sk_num", referenced from: _sk_GENERAL_NAME_num in libfreerdp2.a(crypto.o) _sk_X509_num in libfreerdp2.a(tls.o) "_OPENSSL_sk_pop_free", referenced from: _sk_GENERAL_NAME_pop_free in libfreerdp2.a(crypto.o) "_HMAC_CTX_new", referenced from: _winpr_HMAC_New in libwinpr2.a(hash.o) "_BIO_up_ref", referenced from: _bio_rdp_tls_ctrl in libfreerdp2.a(tls.o) "_OPENSSL_sk_value", referenced from: _sk_GENERAL_NAME_value in libfreerdp2.a(crypto.o) _sk_X509_value in libfreerdp2.a(tls.o) "_BIO_set_data", referenced from: _transport_bio_simple_new in libfreerdp2.a(tcp.o) _transport_bio_simple_free in libfreerdp2.a(tcp.o) _transport_bio_buffered_new in libfreerdp2.a(tcp.o) _rdg_new in libfreerdp2.a(rdg.o) _bio_rdp_tls_new in libfreerdp2.a(tls.o) _bio_rdp_tls_free in libfreerdp2.a(tls.o) _tsg_connect in libfreerdp2.a(tsg.o) ... "_BIO_get_init", referenced from: _transport_bio_simple_ctrl in libfreerdp2.a(tcp.o) _transport_bio_simple_uninit in libfreerdp2.a(tcp.o) _bio_rdp_tls_free in libfreerdp2.a(tls.o) "_BIO_set_retry_reason", referenced from: _bio_rdp_tls_write in libfreerdp2.a(tls.o) _bio_rdp_tls_read in libfreerdp2.a(tls.o) _bio_rdp_tls_ctrl in libfreerdp2.a(tls.o) "_SSL_CTX_set_security_level", referenced from: _tls_prepare in libfreerdp2.a(tls.o) "_TLS_client_method", referenced from: _tls_connect in libfreerdp2.a(tls.o) _schannel_openssl_client_init in libwinpr2.a(schannel_openssl.o) "_BIO_get_shutdown", referenced from: _transport_bio_simple_ctrl in libfreerdp2.a(tcp.o) _transport_bio_simple_uninit in libfreerdp2.a(tcp.o) _bio_rdp_tls_ctrl in libfreerdp2.a(tls.o) _bio_rdp_tls_free in libfreerdp2.a(tls.o) "_SSL_CTX_set_options", referenced from: _tls_prepare in libfreerdp2.a(tls.o) _schannel_openssl_client_init in libwinpr2.a(schannel_openssl.o) _schannel_openssl_server_init in libwinpr2.a(schannel_openssl.o) "_OPENSSL_init_crypto", referenced from: _x509_verify_certificate in libfreerdp2.a(crypto.o) "_BIO_meth_set_puts", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o) "_BIO_meth_set_write", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o) "_BIO_meth_new", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o) "_SSL_in_init", referenced from: _bio_rdp_tls_ctrl in libfreerdp2.a(tls.o) "_BIO_meth_set_create", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o) "_EVP_MD_CTX_free", referenced from: _winpr_Digest_Free in libwinpr2.a(hash.o) "_BIO_set_init", referenced from: _transport_bio_buffered_new in libfreerdp2.a(tcp.o) _transport_bio_simple_uninit in libfreerdp2.a(tcp.o) _transport_bio_simple_init in libfreerdp2.a(tcp.o) _rdg_bio_new in libfreerdp2.a(rdg.o) _bio_rdp_tls_ctrl in libfreerdp2.a(tls.o) _bio_rdp_tls_free in libfreerdp2.a(tls.o) _transport_bio_tsg_new in libfreerdp2.a(tsg.o) ... "_BIO_meth_set_gets", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o) "_BIO_set_shutdown", referenced from: _transport_bio_simple_ctrl in libfreerdp2.a(tcp.o) _transport_bio_simple_init in libfreerdp2.a(tcp.o) _bio_rdp_tls_ctrl in libfreerdp2.a(tls.o) "_BIO_meth_set_callback_ctrl", referenced from: _BIO_s_rdp_tls in libfreerdp2.a(tls.o) "_BIO_get_data", referenced from: _transport_bio_simple_write in libfreerdp2.a(tcp.o) _transport_bio_simple_read in libfreerdp2.a(tcp.o) _transport_bio_simple_ctrl in libfreerdp2.a(tcp.o) _transport_bio_simple_free in libfreerdp2.a(tcp.o) _transport_bio_buffered_write in libfreerdp2.a(tcp.o) _transport_bio_buffered_read in libfreerdp2.a(tcp.o) _transport_bio_buffered_ctrl in libfreerdp2.a(tcp.o) ... "_OBJCCLASS$_OrderedDictionary", referenced from: objc-class-ref in Utils.o objc-class-ref in ProUtil.o "_BIO_meth_set_ctrl", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o) "_BIO_meth_set_destroy", referenced from: _BIO_s_simple_socket in libfreerdp2.a(tcp.o) _BIO_s_buffered_socket in libfreerdp2.a(tcp.o) _BIO_s_rdg in libfreerdp2.a(rdg.o) _BIO_s_rdp_tls in libfreerdp2.a(tls.o) _BIO_s_tsg in libfreerdp2.a(tsg.o)

jasonacox commented 3 years ago

This would happen if the library files you are using do not match the target architecture you are building.

What is the target architecture for your project (MacOS, iOS, iOS Simulator)? Also which library are you using (the build script builds libraries for multiple targets)?

jasonacox commented 3 years ago

I would also suggest trying to use the XCFrameworks libraries to help xcode find the right library for your target platform.

jasonacox commented 1 year ago

Closing with the new update - please open if it is still an issue.