Steward
分享是一種喜悅、更是一種幸福
掌機 - Pandora(Rebirth) - SuperZaxxon - 解決openssl.c:(.text+0x750): undefined reference to BIO_get_shutdown問題
問題如下:
[ 1%] Built target cmsys [ 1%] Built target cmsys_c [ 2%] Built target cmsysTestsC [ 2%] Built target cmsysTestDynload [ 3%] Built target cmsysTestsCxx [ 3%] Built target cmsysTestProcess [ 4%] Built target cmstd [ 5%] Built target kwiml_test [ 6%] Built target cmlibrhash [ 8%] Built target cmzlib [ 10%] Built target cmnghttp2 [ 25%] Built target cmcurl [ 25%] Linking C executable curltest lib/libcmcurl.a(curl_sha512_256.c.o): In function `Curl_sha512_256_init': curl_sha512_256.c:(.text+0x4): undefined reference to `EVP_MD_CTX_new' curl_sha512_256.c:(.text+0xe): undefined reference to `EVP_sha512_256' curl_sha512_256.c:(.text+0x24): undefined reference to `EVP_MD_CTX_free' lib/libcmcurl.a(curl_sha512_256.c.o): In function `Curl_sha512_256_finish_v': curl_sha512_256.c:(.text+0x4a): undefined reference to `EVP_MD_CTX_free' lib/libcmcurl.a(curl_sha512_256.c.o): In function `Curl_sha512_256it': curl_sha512_256.c:(.text+0x5c): undefined reference to `EVP_MD_CTX_new' curl_sha512_256.c:(.text+0x64): undefined reference to `EVP_sha512_256' curl_sha512_256.c:(.text+0x8c): undefined reference to `EVP_MD_CTX_free' curl_sha512_256.c:(.text+0x96): undefined reference to `EVP_MD_CTX_free' curl_sha512_256.c:(.text+0xb4): undefined reference to `EVP_MD_CTX_free' lib/libcmcurl.a(sha256.c.o): In function `my_sha256_init': sha256.c:(.text+0x4): undefined reference to `EVP_MD_CTX_new' sha256.c:(.text+0x24): undefined reference to `EVP_MD_CTX_free' lib/libcmcurl.a(sha256.c.o): In function `Curl_sha256it': sha256.c:(.text+0x5c): undefined reference to `EVP_MD_CTX_new' sha256.c:(.text+0x90): undefined reference to `EVP_MD_CTX_free' sha256.c:(.text+0x9a): undefined reference to `EVP_MD_CTX_free' lib/libcmcurl.a(sha256.c.o): In function `my_sha256_final': sha256.c:(.text+0x4e): undefined reference to `EVP_MD_CTX_free' lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_version': openssl.c:(.text+0x3d6): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `ossl_get_channel_binding': openssl.c:(.text+0x474): undefined reference to `SSL_get1_peer_certificate' openssl.c:(.text+0x47e): undefined reference to `X509_get_signature_nid' lib/libcmcurl.a(openssl.c.o): In function `ossl_sha256sum': openssl.c:(.text+0x544): undefined reference to `EVP_MD_CTX_new' openssl.c:(.text+0x55e): undefined reference to `EVP_MD_CTX_free' openssl.c:(.text+0x580): undefined reference to `EVP_MD_CTX_free' lib/libcmcurl.a(openssl.c.o): In function `ossl_close': openssl.c:(.text+0x5fe): undefined reference to `BIO_meth_free' lib/libcmcurl.a(openssl.c.o): In function `ossl_bio_cf_create': openssl.c:(.text+0x6fe): undefined reference to `BIO_set_shutdown' openssl.c:(.text+0x706): undefined reference to `BIO_set_init' openssl.c:(.text+0x70e): undefined reference to `BIO_set_data' lib/libcmcurl.a(openssl.c.o): In function `ossl_bio_cf_ctrl': openssl.c:(.text+0x720): undefined reference to `BIO_get_data' openssl.c:(.text+0x742): undefined reference to `BIO_set_shutdown' lib/libcmcurl.a(openssl.c.o): In function `ossl_bio_cf_out_write': openssl.c:(.text+0x770): undefined reference to `BIO_get_data' lib/libcmcurl.a(openssl.c.o): In function `ossl_init': openssl.c:(.text+0x816): undefined reference to `OPENSSL_init_ssl' lib/libcmcurl.a(openssl.c.o): In function `ossl_strerror': openssl.c:(.text+0x8e0): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `ossl_close_all': openssl.c:(.text+0xbca): undefined reference to `OSSL_PROVIDER_unload' openssl.c:(.text+0xbda): undefined reference to `OSSL_PROVIDER_unload' openssl.c:(.text+0xbea): undefined reference to `OSSL_LIB_CTX_free' lib/libcmcurl.a(openssl.c.o): In function `ossl_new_session_cb': openssl.c:(.text+0xc9a): undefined reference to `SSL_SESSION_get_max_early_data' lib/libcmcurl.a(openssl.c.o): In function `ossl_infof_cert': openssl.c:(.text+0xe00): undefined reference to `X509_get0_notBefore' openssl.c:(.text+0xe4c): undefined reference to `X509_get0_notAfter' openssl.c:(.text+0xf8a): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `ossl_init_session_and_alpns.isra.12': openssl.c:(.text+0x10e0): undefined reference to `SSL_set_alpn_protos' openssl.c:(.text+0x113c): undefined reference to `OpenSSL_version' openssl.c:(.text+0x1224): undefined reference to `SSL_SESSION_get_max_early_data' lib/libcmcurl.a(openssl.c.o): In function `ossl_send': openssl.c:(.text+0x144c): undefined reference to `OpenSSL_version' openssl.c:(.text+0x1518): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `ossl_set_provider': openssl.c:(.text+0x15f8): undefined reference to `OSSL_LIB_CTX_load_config' openssl.c:(.text+0x1626): undefined reference to `OSSL_PROVIDER_available' openssl.c:(.text+0x1646): undefined reference to `OSSL_PROVIDER_unload' openssl.c:(.text+0x1656): undefined reference to `OSSL_PROVIDER_unload' openssl.c:(.text+0x1666): undefined reference to `OSSL_LIB_CTX_free' openssl.c:(.text+0x169c): undefined reference to `OSSL_PROVIDER_try_load' openssl.c:(.text+0x16b6): undefined reference to `OSSL_PROVIDER_try_load' openssl.c:(.text+0x16ca): undefined reference to `OSSL_PROVIDER_unload' openssl.c:(.text+0x16d8): undefined reference to `OSSL_LIB_CTX_free' openssl.c:(.text+0x171e): undefined reference to `OpenSSL_version' openssl.c:(.text+0x17ac): undefined reference to `OSSL_PROVIDER_unload' openssl.c:(.text+0x17bc): undefined reference to `OSSL_PROVIDER_unload' openssl.c:(.text+0x17cc): undefined reference to `OSSL_LIB_CTX_free' openssl.c:(.text+0x17f8): undefined reference to `OSSL_LIB_CTX_new' openssl.c:(.text+0x1826): undefined reference to `OSSL_LIB_CTX_free' lib/libcmcurl.a(openssl.c.o): In function `ossl_set_engine': openssl.c:(.text+0x1886): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `client_cert': openssl.c:(.text+0x1a50): undefined reference to `OSSL_STORE_open_ex' openssl.c:(.text+0x1a5e): undefined reference to `OSSL_STORE_expect' openssl.c:(.text+0x1a72): undefined reference to `OpenSSL_version' openssl.c:(.text+0x1afe): undefined reference to `OSSL_STORE_load' openssl.c:(.text+0x1b06): undefined reference to `OSSL_STORE_INFO_get_type' openssl.c:(.text+0x1b12): undefined reference to `OSSL_STORE_INFO_free' openssl.c:(.text+0x1b18): undefined reference to `OSSL_STORE_close' openssl.c:(.text+0x1b2a): undefined reference to `OpenSSL_version' openssl.c:(.text+0x1c9e): undefined reference to `OpenSSL_version' openssl.c:(.text+0x1da2): undefined reference to `OpenSSL_version' openssl.c:(.text+0x1f4a): undefined reference to `OpenSSL_version' openssl.c:(.text+0x1fea): undefined reference to `OPENSSL_sk_pop_free' openssl.c:(.text+0x202c): undefined reference to `OpenSSL_version' openssl.c:(.text+0x226e): undefined reference to `OSSL_STORE_open_ex' openssl.c:(.text+0x227c): undefined reference to `OSSL_STORE_expect' openssl.c:(.text+0x2290): undefined reference to `OpenSSL_version' openssl.c:(.text+0x231e): undefined reference to `OSSL_STORE_load' openssl.c:(.text+0x2326): undefined reference to `OSSL_STORE_INFO_get_type' openssl.c:(.text+0x2332): undefined reference to `OSSL_STORE_INFO_free' openssl.c:(.text+0x2338): undefined reference to `OSSL_STORE_close' openssl.c:(.text+0x2382): undefined reference to `OpenSSL_version' openssl.c:(.text+0x241a): undefined reference to `OpenSSL_version' openssl.c:(.text+0x2634): undefined reference to `EVP_PKEY_get_id' openssl.c:(.text+0x26b2): undefined reference to `OpenSSL_version' openssl.c:(.text+0x277e): undefined reference to `OSSL_STORE_INFO_get1_CERT' openssl.c:(.text+0x2786): undefined reference to `OSSL_STORE_INFO_free' openssl.c:(.text+0x278c): undefined reference to `OSSL_STORE_close' openssl.c:(.text+0x27ba): undefined reference to `OpenSSL_version' openssl.c:(.text+0x2862): undefined reference to `OpenSSL_version' openssl.c:(.text+0x2906): undefined reference to `OPENSSL_sk_pop' openssl.c:(.text+0x292e): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x294c): undefined reference to `OPENSSL_sk_pop_free' openssl.c:(.text+0x2a9e): undefined reference to `OpenSSL_version' openssl.c:(.text+0x2ba6): undefined reference to `OSSL_STORE_INFO_get1_PKEY' openssl.c:(.text+0x2bae): undefined reference to `OSSL_STORE_INFO_free' openssl.c:(.text+0x2bb4): undefined reference to `OSSL_STORE_close' openssl.c:(.text+0x2be2): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `ossl_shutdown': openssl.c:(.text+0x3162): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_add_session': openssl.c:(.text+0x326a): undefined reference to `SSL_SESSION_get_max_early_data' lib/libcmcurl.a(openssl.c.o): In function `Curl_ssl_setup_x509_store': openssl.c:(.text+0x33bc): undefined reference to `X509_STORE_up_ref' openssl.c:(.text+0x347e): undefined reference to `X509_STORE_up_ref' openssl.c:(.text+0x35c4): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x35d6): undefined reference to `OPENSSL_sk_value' openssl.c:(.text+0x3610): undefined reference to `OPENSSL_sk_pop_free' openssl.c:(.text+0x365c): undefined reference to `X509_STORE_load_file' openssl.c:(.text+0x373a): undefined reference to `OPENSSL_sk_pop_free' openssl.c:(.text+0x3780): undefined reference to `X509_STORE_load_path' lib/libcmcurl.a(openssl.c.o): In function `ossl_bio_cf_in_read': openssl.c:(.text+0x38dc): undefined reference to `BIO_get_data' lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_ctx_init': openssl.c:(.text+0x3aae): undefined reference to `TLS_method' openssl.c:(.text+0x3acc): undefined reference to `SSL_CTX_new_ex' openssl.c:(.text+0x3b84): undefined reference to `SSL_CTX_set_options' openssl.c:(.text+0x3ba0): undefined reference to `SSL_CTX_set_default_read_buffer_len' openssl.c:(.text+0x3bf2): undefined reference to `SSL_CTX_set_ciphersuites' openssl.c:(.text+0x3c68): undefined reference to `SSL_CTX_set_post_handshake_auth' openssl.c:(.text+0x3da4): undefined reference to `TLS_client_method' openssl.c:(.text+0x3dfc): undefined reference to `OpenSSL_version' openssl.c:(.text+0x3f32): undefined reference to `SSL_CTX_set_keylog_callback' lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_report_handshake': openssl.c:(.text+0x3f8a): undefined reference to `SSL_get_peer_signature_type_nid' lib/libcmcurl.a(openssl.c.o): In function `ossl_connect_step2': openssl.c:(.text+0x410c): undefined reference to `SSL_get0_alpn_selected' openssl.c:(.text+0x41fe): undefined reference to `OpenSSL_version' openssl.c:(.text+0x4320): undefined reference to `OpenSSL_version' lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_check_peer_cert': openssl.c:(.text+0x4454): undefined reference to `SSL_get1_peer_certificate' openssl.c:(.text+0x4494): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x44f2): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x455c): undefined reference to `OPENSSL_sk_value' openssl.c:(.text+0x4566): undefined reference to `X509_get0_pubkey' openssl.c:(.text+0x4576): undefined reference to `X509_get0_signature' openssl.c:(.text+0x4598): undefined reference to `EVP_PKEY_get_bits' openssl.c:(.text+0x45a0): undefined reference to `EVP_PKEY_get_security_bits' openssl.c:(.text+0x45ba): undefined reference to `EVP_PKEY_get_group_name' openssl.c:(.text+0x45d4): undefined reference to `EVP_PKEY_get0_type_name' openssl.c:(.text+0x468c): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x46c0): undefined reference to `OPENSSL_sk_value' openssl.c:(.text+0x46e8): undefined reference to `ASN1_STRING_get0_data' openssl.c:(.text+0x4818): undefined reference to `X509_get_X509_PUBKEY' openssl.c:(.text+0x4842): undefined reference to `X509_get_X509_PUBKEY' openssl.c:(.text+0x4938): undefined reference to `SSL_get0_verified_chain' openssl.c:(.text+0x49cc): undefined reference to `OPENSSL_sk_value' openssl.c:(.text+0x4a74): undefined reference to `X509_get_version' openssl.c:(.text+0x4b42): undefined reference to `X509_get0_signature' openssl.c:(.text+0x4b98): undefined reference to `X509_get_X509_PUBKEY' openssl.c:(.text+0x4bf0): undefined reference to `X509_get0_extensions' openssl.c:(.text+0x4bf6): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x4c30): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x4c40): undefined reference to `OPENSSL_sk_value' openssl.c:(.text+0x4ca2): undefined reference to `EVP_PKEY_get_bn_param' openssl.c:(.text+0x4cb2): undefined reference to `EVP_PKEY_get_bn_param' openssl.c:(.text+0x4d1e): undefined reference to `X509_get0_notBefore' openssl.c:(.text+0x4d62): undefined reference to `X509_get0_notAfter' openssl.c:(.text+0x4db0): undefined reference to `EVP_PKEY_get_id' openssl.c:(.text+0x5022): undefined reference to `EVP_PKEY_get_bn_param' openssl.c:(.text+0x5032): undefined reference to `EVP_PKEY_get_bn_param' openssl.c:(.text+0x5042): undefined reference to `EVP_PKEY_get_bn_param' openssl.c:(.text+0x5052): undefined reference to `EVP_PKEY_get_bn_param' openssl.c:(.text+0x51f4): undefined reference to `EVP_PKEY_get_bn_param' lib/libcmcurl.a(openssl.c.o):openssl.c:(.text+0x5204): more undefined references to `EVP_PKEY_get_bn_param' follow lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_check_peer_cert': openssl.c:(.text+0x541e): undefined reference to `OpenSSL_version' openssl.c:(.text+0x54f4): undefined reference to `OpenSSL_version' openssl.c:(.text+0x55c2): undefined reference to `SSL_get1_peer_certificate' openssl.c:(.text+0x55cc): undefined reference to `OPENSSL_sk_value' openssl.c:(.text+0x55e0): undefined reference to `OPENSSL_sk_num' openssl.c:(.text+0x581a): undefined reference to `ASN1_STRING_get0_data' lib/libcmcurl.a(openssl.c.o): In function `ossl_connect': openssl.c:(.text+0x59a8): undefined reference to `SSL_CTX_set_options' openssl.c:(.text+0x59c4): undefined reference to `SSL_CTX_set_default_read_buffer_len' openssl.c:(.text+0x5a1c): undefined reference to `SSL_CTX_set_ciphersuites' openssl.c:(.text+0x5a96): undefined reference to `SSL_CTX_set_post_handshake_auth' openssl.c:(.text+0x5b8a): undefined reference to `BIO_meth_new' openssl.c:(.text+0x5b9e): undefined reference to `BIO_meth_set_write' openssl.c:(.text+0x5bac): undefined reference to `BIO_meth_set_read' openssl.c:(.text+0x5bba): undefined reference to `BIO_meth_set_ctrl' openssl.c:(.text+0x5bc8): undefined reference to `BIO_meth_set_create' openssl.c:(.text+0x5bd6): undefined reference to `BIO_meth_set_destroy' openssl.c:(.text+0x5bee): undefined reference to `BIO_set_data' openssl.c:(.text+0x5e5c): undefined reference to `SSL_get_early_data_status' openssl.c:(.text+0x5e94): undefined reference to `TLS_client_method' openssl.c:(.text+0x5eae): undefined reference to `SSL_CTX_new_ex' openssl.c:(.text+0x5f36): undefined reference to `TLS_method' openssl.c:(.text+0x5f78): undefined reference to `SSL_write_early_data' openssl.c:(.text+0x60e0): undefined reference to `OpenSSL_version' openssl.c:(.text+0x61ca): undefined reference to `OpenSSL_version' openssl.c:(.text+0x628e): undefined reference to `SSL_write_early_data' openssl.c:(.text+0x634c): undefined reference to `SSL_CTX_set_keylog_callback' lib/libcmcurl.a(openssl.c.o): In function `ossl_bio_cf_ctrl': openssl.c:(.text+0x750): undefined reference to `BIO_get_shutdown' collect2: error: ld returned 1 exit status Utilities/cmcurl/CMakeFiles/curltest.dir/build.make:104: recipe for target 'Utilities/cmcurl/curltest' failed make[2]: *** [Utilities/cmcurl/curltest] Error 1 CMakeFiles/Makefile2:2225: recipe for target 'Utilities/cmcurl/CMakeFiles/curltest.dir/all' failed make[1]: *** [Utilities/cmcurl/CMakeFiles/curltest.dir/all] Error 2 Makefile:165: recipe for target 'all' failed make: *** [all] Error 2
解法如下:
$ cd $ wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz $ tar xf openssl-1.1.1w.tar.gz $ cd openssl-1.1.1w $ ./config $ make $ sudo make install $ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH $ export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH