Qt上报错:undefined reference to xxx@openssl_1.0.0

关于openssl版本不兼容问题


原本pro配置文件:

/*无效的配置*/
#增加程序库文件路径
LIBS += \
           -lcurl -lcrypto  -ljsoncpp

直接上错误代码:

/usr/lib/x86_64-linux-gnu/libcurl.so:对‘PKCS12_PBE_add@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_basic_verify@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BIO_puts@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_peer_certificate@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BIO_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSLv3_client_method@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_get_id@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘RAND_status@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘MD5_Final@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_verify@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ASN1_TIME_print@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_ctrl@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘CONF_modules_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘DES_set_key@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_set_session@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_EXTENSION_get_data@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ERR_error_string_n@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_cert_status_str@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_check_issued@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_default_passwd_cb_userdata@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_RESPONSE_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_get_pubkey@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘CRYPTO_malloc@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_use_certificate_chain_file@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSLeay@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_get_opener@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_CERTID_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_load_crl_file@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_resp_find_status@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ASN1_STRING_type@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ASN1_STRING_data@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘i2t_ASN1_OBJECT@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_error@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_NAME_get_entry@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_add_client_CA@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_privatekey@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OPENSSL_load_builtin_modules@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘CRYPTO_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘RAND_add@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ASN1_STRING_length@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CIPHER_get_name@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ERR_peek_error@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘sk_num@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_next_proto_select_cb@OPENSSL_1.0.1’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_get_serialNumber@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_use_PrivateKey_file@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_OpenSSL@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_verify_cert_error_string@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_ctrl_cmd@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘PKCS12_parse@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘MD4_Update@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘RAND_egd@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘EVP_sha1@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘d2i_OCSP_RESPONSE@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_get0_user_data@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_get_issuer_name@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BIO_s_mem@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘CRYPTO_cleanup_all_ex_data@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_create_method@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_read@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ERR_remove_thread_state@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_check_private_key@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BIO_printf@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_alpn_protos@OPENSSL_1.0.2’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘PKCS12_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘GENERAL_NAMES_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_set_writer@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘RAND_file_name@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get1_session@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_STORE_set_flags@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_check_validity@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_set_closer@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BN_print@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_get_writer@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_load_private_key@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_use_PrivateKey@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BIO_new@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_get_subject_name@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘DES_ecb_encrypt@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_cipher_list@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘RAND_bytes@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_get_reader@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_NAME_ENTRY_get_data@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘sk_value@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘EVP_PKEY_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_response_status_str@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘sk_pop_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_get_first@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_new@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_get_cert_store@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_get_next@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_use_certificate_file@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_version@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_crl_reason_str@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘d2i_PKCS12_fp@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_cleanup@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_set_result@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘PEM_write_bio_X509@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BIO_ctrl@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_STORE_add_lookup@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_peek@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_by_id@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_response_get1_basic@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_shutdown@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get0_alpn_selected@OPENSSL_1.0.2’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘i2d_X509_PUBKEY@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ERR_get_error@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509V3_EXT_print@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘MD4_Final@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_peer_cert_chain@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_load_error_strings@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_new@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_current_cipher@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SHA256_Init@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_set_default@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_get_input_flags@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_write@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘BN_num_bits@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘EVP_PKEY_copy_parameters@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ASN1_STRING_print@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘EVP_cleanup@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘PEM_read_X509@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_set_connect_state@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_EXTENSION_get_object@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_load_verify_locations@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘sk_pop@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ERR_free_strings@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘RAND_load_file@OPENSSL_1.0.0’未定义的引用
Makefile:249: recipe for target 'text_recog_demo' failed
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_destroy_method@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_srp_password@OPENSSL_1.0.1’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘CONF_modules_load_file@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_set_reader@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_BASICRESP_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_ctrl@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ASN1_STRING_to_UTF8@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ERR_clear_error@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_set_opener@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_init@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_cert_to_id@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_set_fd@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_get_string_type@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_use_certificate@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_connect@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_NAME_get_index_by_NID@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSLv23_client_method@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_ctrl@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ASN1_INTEGER_get@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SHA256_Update@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_LOOKUP_file@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘UI_method_get_closer@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘DES_set_odd_parity@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_pending@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_default_passwd_cb@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_SESSION_free@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_certificate@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_NAME_print_ex@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘MD5_Init@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_finish@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SHA256_Final@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘X509_get_ext_d2i@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_library_init@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OPENSSL_add_all_algorithms_noconf@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘MD4_Init@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ERR_error_string@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_srp_username@OPENSSL_1.0.1’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘ENGINE_load_builtin_engines@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_response_status@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_shutdown@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘MD5_Update@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘i2a_ASN1_OBJECT@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_get_verify_result@OPENSSL_1.0.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libcurl.so:对‘SSL_CTX_set_msg_callback@OPENSSL_1.0.0’未定义的引用

在Qt上配置库文件错误出现未定义的引用比较常见,但是上述错误还是第一次遇见,比较隐晦,这里就不阐述我解决该问题的具体过程了,心酸泪 啊

产生原因

如果新建一个界面UI的Qt项目,受Qt其他库文件及其环境的影响,Qt默认去寻找ssl及其cryto相关的路径为:/opt/Qt5.9.2/5.9.2/gcc_64/lib/libssl.so.1.0.0。而我这里该路径下的版本是不兼容的,对lcur依赖的ssl无效!!!
但是系统路径下的openssl相关库文件时可以使用的!

即系统上有两个相同库名文件,但是版本不一致,Qt界面项目去寻找了不兼容的版本,导致了该错误!

但是值得注意的是创建C++项目是可以通过编译的!无上述错误,因为此时不需要Qt界面相关库文件,Qt就不会指定Qt的默认库路径/opt/Qt5.9.2/5.9.2/gcc_64/lib/了。

解决办法

使用: ldd /usr/lib/x86_64-linux-gnu/libcurl.so查看libcurl所依赖的库及其路径:

linux-vdso.so.1 =>  (0x00007ffd3b7f7000)
	libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007fb2008d1000)
	librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fb2006b5000)
	libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fb20044d000)
	libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fb200008000)
	libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fb1ffdbe000)
	liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fb1ffbaf000)
	libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fb1ff95e000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb1ff744000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb1ff527000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb1ff15d000)
	libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fb1fee2d000)
	libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007fb1febfa000)
	libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007fb1fe9c4000)
	libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fb1fe744000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb1fe540000)
	libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fb1fe26e000)
	libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fb1fe03f000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fb1fde3b000)
	libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fb1fdc30000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fb1fda15000)
	libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fb1fd7fa000)
	libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fb1fd5b9000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fb200d73000)
	libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fb1fd355000)
	libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fb1fd142000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fb1fcf3e000)
	libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fb1fcd35000)
	libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fb1fcaab000)
	libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fb1fc809000)
	libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fb1fc5d6000)
	libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007fb1fc3c0000)
	libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fb1fc1b8000)
	libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007fb1fbf8f000)
	libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fb1fbd80000)
	libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fb1fbb35000)
	libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fb1fb860000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fb1fb628000)

找到openssl相关的库文件:

/*正确的路径*/
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 
(0x00007fb20044d000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 

将 默认路径下的/opt/Qt5.9.2/5.9.2/gcc_64/lib/libssl.so.1.0.0改成以上正确版本的库文件!

cp  /lib/x86_64-linux-gnu/libssl.so.1.0.0    /lib/x86_64-linux-gnu/libcrypto.so.1.0.0   /opt/Qt5.9.2/5.9.2/gcc_64/lib/

成功解决!!!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值