Closed fwebcc closed 3 years ago
Lws doesn't have any problem building out a static .a, by default it produces both the .a and the .so.
This is to do with mosquitto build for that case, you'll have to take it up with them. They might come back with something specific to take back up with us, we can discuss it then.
ifeq ($(WITH_WEBSOCKETS),static) BROKER_CPPFLAGS:=$(BROKER_CPPFLAGS) -DWITH_WEBSOCKETS BROKER_LDADD:=$(BROKER_LDADD) -static -lwebsockets endif
N="\"2.0.13\"" -DWITH_BROKER -c xtreport.c -o xtreport.o cc -L/mnt/4.21/openss_x86/lib -lssl -lcrypto -ldl -lpthread -Wl,--dynamic-list=linker.syms mosquitto.o alias_mosq.o bridge.o bridge_topic.o conf.o conf_includedir.o context.o control.o database.o handle_auth.o handle_connack.o handle_connect.o handle_disconnect.o handle_ping.o handle_pubackcomp.o handle_publish.o handle_pubrec.o handle_pubrel.o handle_suback.o handle_subscribe.o handle_unsuback.o handle_unsubscribe.o keepalive.o logging.o loop.o memory_mosq.o memory_public.o misc_mosq.o mux.o mux_epoll.o mux_poll.o net.o net_mosq.o net_mosq_ocsp.o packet_datatypes.o packet_mosq.o password_mosq.o property_broker.o property_mosq.o persist_read.o persist_read_v234.o persist_read_v5.o persist_write.o persist_write_v5.o plugin.o plugin_public.o read_handle.o retain.o security.o security_default.o send_auth.o send_connack.o send_connect.o send_disconnect.o send_mosq.o send_publish.o send_suback.o send_subscribe.o send_unsuback.o send_unsubscribe.o service.o session_expiry.o signals.o strings_mosq.o subs.o sys_tree.o time_mosq.o topic_tok.o tls_mosq.o utf8_mosq.o util_mosq.o util_topic.o websockets.o will_delay.o will_mosq.o xtreport.o -o mosquitto -ldl -lm -lrt -static -lwebsockets security.o:在函数‘securitymodule_init_single’中: /opt/mosquitto-2.0.13/src/security.c:311: 警告:Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking mosquitto.o:在函数‘drop_privileges’中: /opt/mosquitto-2.0.13/src/mosquitto.c:114: 警告:Using 'initgroups' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking //usr/local/lib/libwebsockets.a(unix-caps.c.o):在函数‘lws_plat_drop_app_privileges’中: unix-caps.c:(.text+0x3bf): 警告:Using 'getgrgid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking //usr/local/lib/libwebsockets.a(unix-caps.c.o):在函数‘lws_plat_user_colon_group_to_ids’中: unix-caps.c:(.text+0xc7): 警告:Using 'getgrnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking mosquitto.o:在函数‘drop_privileges’中: /opt/mosquitto-2.0.13/src/mosquitto.c:100: 警告:Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking //usr/local/lib/libwebsockets.a(unix-caps.c.o):在函数‘lws_plat_user_colon_group_to_ids’中: unix-caps.c:(.text+0x138): 警告:Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking //usr/local/lib/libwebsockets.a(unix-caps.c.o):在函数‘lws_plat_drop_app_privileges’中: unix-caps.c:(.text+0x4f1): 警告:Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking conf.o:在函数‘confattempt_resolve’中: /opt/mosquitto-2.0.13/src/conf.c:93: 警告:Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking //usr/local/lib/libwebsockets.a(context.c.o):在函数‘lws_create_context’中: context.c:(.text+0xac6):对‘pthread_mutex_init’未定义的引用 context.c:(.text+0xadd):对‘pthread_mutex_init’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘_lws_smd_msg_send’中: smd.c:(.text+0x3a3):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0x411):对‘pthread_mutex_unlock’未定义的引用 smd.c:(.text+0x439):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0x516):对‘pthread_mutex_unlock’未定义的引用 smd.c:(.text+0x537):对‘pthread_mutex_unlock’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘_lws_smd_peer_destroy’中: smd.c:(.text+0x779):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0x826):对‘pthread_mutex_unlock’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘_lws_smd_msg_deliver_peer’中: smd.c:(.text+0x992):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0x9de):对‘pthread_mutex_unlock’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘lws_smd_msg_distribute’中: smd.c:(.text+0xa36):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0xa97):对‘pthread_mutex_unlock’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘lws_smd_register’中: smd.c:(.text+0xb32):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0xb44):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0xbe0):对‘pthread_mutex_unlock’未定义的引用 smd.c:(.text+0xc32):对‘pthread_mutex_unlock’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘lws_smd_unregister’中: smd.c:(.text+0xc64):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0xca4):对‘pthread_mutex_unlock’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘lws_smd_message_pending’中: smd.c:(.text+0xce4):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0xcf6):对‘pthread_mutex_lock’未定义的引用 smd.c:(.text+0xe01):对‘pthread_mutex_unlock’未定义的引用 smd.c:(.text+0xe56):对‘pthread_mutex_unlock’未定义的引用 //usr/local/lib/libwebsockets.a(smd.c.o):在函数‘_lws_smd_destroy’中: smd.c:(.text+0xf2b):对‘pthread_mutex_destroy’未定义的引用 smd.c:(.text+0xf3d):对‘pthread_mutex_destroy’未定义的引用 //usr/local/lib/libwebsockets.a(tls.c.o):在函数‘alpn_cb’中: tls.c:(.text+0x51):对‘SSL_select_next_proto’未定义的引用 //usr/local/lib/libwebsockets.a(tls.c.o):在函数‘lws_context_init_alpn’中: tls.c:(.text+0x298):对‘SSL_CTX_set_alpn_select_cb’未定义的引用 //usr/local/lib/libwebsockets.a(tls.c.o):在函数‘lws_tls_server_conn_alpn’中: tls.c:(.text+0x2e7):对‘SSL_get0_alpn_selected’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-tls.c.o):在函数‘lws_tls_err_describe_clear’中: openssl-tls.c:(.text+0x1a6):对‘ERR_get_error’未定义的引用 openssl-tls.c:(.text+0x1cc):对‘ERR_error_string_n’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-tls.c.o):在函数‘lws_context_init_ssl_library’中: openssl-tls.c:(.text+0x28b):对‘OPENSSL_init_ssl’未定义的引用 openssl-tls.c:(.text+0x2bd):对‘CRYPTO_get_ex_new_index’未定义的引用 openssl-tls.c:(.text+0x2e8):对‘CRYPTO_get_ex_new_index’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-x509.c.o):在函数‘lws_tls_openssl_cert_info’中: openssl-x509.c:(.text+0x2b1):对‘X509_getm_notBefore’未定义的引用 openssl-x509.c:(.text+0x2ea):对‘X509_getm_notAfter’未定义的引用 openssl-x509.c:(.text+0x323):对‘X509_get_subject_name’未定义的引用 openssl-x509.c:(.text+0x356):对‘X509_NAME_oneline’未定义的引用 openssl-x509.c:(.text+0x3d5):对‘X509_get_issuer_name’未定义的引用 openssl-x509.c:(.text+0x408):对‘X509_NAME_oneline’未定义的引用 openssl-x509.c:(.text+0x436):对‘X509_get_key_usage’未定义的引用 openssl-x509.c:(.text+0x44f):对‘X509_get_X509_PUBKEY’未定义的引用 openssl-x509.c:(.text+0x45c):对‘i2d_X509_PUBKEY’未定义的引用 openssl-x509.c:(.text+0x495):对‘CRYPTO_malloc’未定义的引用 openssl-x509.c:(.text+0x4be):对‘X509_get_X509_PUBKEY’未定义的引用 openssl-x509.c:(.text+0x4d0):对‘i2d_X509_PUBKEY’未定义的引用 openssl-x509.c:(.text+0x53c):对‘CRYPTO_free’未定义的引用 openssl-x509.c:(.text+0x585):对‘CRYPTO_free’未定义的引用 openssl-x509.c:(.text+0x5a0):对‘i2d_X509’未定义的引用 openssl-x509.c:(.text+0x5ef):对‘i2d_X509’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-x509.c.o):在函数‘lws_tls_vhost_cert_info’中: openssl-x509.c:(.text+0x675):对‘SSL_CTX_get0_certificate’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-x509.c.o):在函数‘lws_tls_peer_cert_info’中: openssl-x509.c:(.text+0x6d3):对‘SSL_get_peer_certificate’未定义的引用 openssl-x509.c:(.text+0x716):对‘SSL_get_verify_result’未定义的引用 openssl-x509.c:(.text+0x74d):对‘X509_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-x509.c.o):在函数‘lws_x509_parse_from_pem’中: openssl-x509.c:(.text+0x7c3):对‘BIO_s_mem’未定义的引用 openssl-x509.c:(.text+0x7cb):对‘BIO_new’未定义的引用 openssl-x509.c:(.text+0x7e8):对‘BIO_write’未定义的引用 openssl-x509.c:(.text+0x803):对‘PEM_read_bio_X509’未定义的引用 openssl-x509.c:(.text+0x819):对‘BIO_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-x509.c.o):在函数‘lws_x509_verify’中: openssl-x509.c:(.text+0x883):对‘X509_get_subject_name’未定义的引用 openssl-x509.c:(.text+0x8b0):对‘X509_NAME_oneline’未定义的引用 openssl-x509.c:(.text+0x931):对‘X509_check_issued’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-x509.c.o):在函数‘lws_x509_destroy’中: openssl-x509.c:(.text+0x9a3):对‘X509_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_openssl_describe_cipher’中: openssl-ssl.c:(.text+0x31):对‘SSL_get_current_cipher’未定义的引用 openssl-ssl.c:(.text+0x43):对‘SSL_CIPHER_get_bits’未定义的引用 openssl-ssl.c:(.text+0x4f):对‘SSL_get_current_cipher’未定义的引用 openssl-ssl.c:(.text+0x57):对‘SSL_CIPHER_get_version’未定义的引用 openssl-ssl.c:(.text+0x69):对‘SSL_get_current_cipher’未定义的引用 openssl-ssl.c:(.text+0x71):对‘SSL_CIPHER_get_name’未定义的引用 openssl-ssl.c:(.text+0x80):对‘SSL_get_current_cipher’未定义的引用 openssl-ssl.c:(.text+0x88):对‘SSL_CIPHER_get_name’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_get_error’中: openssl-ssl.c:(.text+0x114):对‘SSL_get_error’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_bind_passphrase’中: openssl-ssl.c:(.text+0x297):对‘SSL_CTX_set_default_passwd_cb_userdata’未定义的引用 openssl-ssl.c:(.text+0x2bc):对‘SSL_CTX_set_default_passwd_cb’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_destroy_client_ctx’中: openssl-ssl.c:(.text+0x339):对‘SSL_CTX_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_destroy’中: openssl-ssl.c:(.text+0x40a):对‘SSL_CTX_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_capable_read’中: openssl-ssl.c:(.text+0x4a7):对‘ERR_clear_error’未定义的引用 openssl-ssl.c:(.text+0x4c7):对‘SSL_read’未定义的引用 openssl-ssl.c:(.text+0x598):对‘SSL_want’未定义的引用 openssl-ssl.c:(.text+0x5fc):对‘SSL_want’未定义的引用 openssl-ssl.c:(.text+0x679):对‘SSL_pending’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_pending’中: openssl-ssl.c:(.text+0x716):对‘SSL_pending’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_capable_write’中: openssl-ssl.c:(.text+0x768):对‘ERR_clear_error’未定义的引用 openssl-ssl.c:(.text+0x788):对‘SSL_write’未定义的引用 openssl-ssl.c:(.text+0x7d0):对‘SSL_want’未定义的引用 openssl-ssl.c:(.text+0x815):对‘SSL_want’未定义的引用 openssl-ssl.c:(.text+0x850):对‘ERR_error_string’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_info_callback’中: openssl-ssl.c:(.text+0x8b5):对‘SSL_get_SSL_CTX’未定义的引用 openssl-ssl.c:(.text+0x8bf):对‘SSL_CTX_get_ex_data’未定义的引用 openssl-ssl.c:(.text+0x8da):对‘SSL_get_fd’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_close’中: openssl-ssl.c:(.text+0x9e3):对‘SSL_set_info_callback’未定义的引用 openssl-ssl.c:(.text+0x9f6):对‘SSL_get_fd’未定义的引用 openssl-ssl.c:(.text+0xa1e):对‘SSL_shutdown’未定义的引用 openssl-ssl.c:(.text+0xa3b):对‘SSL_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_ssl_SSL_CTX_destroy’中: openssl-ssl.c:(.text+0xaa1):对‘SSL_CTX_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_tls_ctx_from_wsi’中: openssl-ssl.c:(.text+0xaf1):对‘SSL_get_SSL_CTX’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-ssl.c.o):在函数‘lws_tls_shutdown’中: openssl-ssl.c:(.text+0xb0f):对‘ERR_clear_error’未定义的引用 openssl-ssl.c:(.text+0xb22):对‘SSL_shutdown’未定义的引用 openssl-ssl.c:(.text+0xbb3):对‘SSL_get_error’未定义的引用 openssl-ssl.c:(.text+0xbdd):对‘SSL_want’未定义的引用 openssl-ssl.c:(.text+0xc28):对‘SSL_want’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-session.c.o):在函数‘lws_tls_session_destroy’中: openssl-session.c:(.text+0x73):对‘SSL_SESSION_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-session.c.o):在函数‘lws_tls_reuse_session’中: openssl-session.c:(.text+0x200):对‘SSL_set_session’未定义的引用 openssl-session.c:(.text+0x24a):对‘SSL_SESSION_set_time’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-session.c.o):在函数‘lws_tls_session_is_reused’中: openssl-session.c:(.text+0x2c9):对‘SSL_session_reused’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-session.c.o):在函数‘lws_tls_session_new_cb’中: openssl-session.c:(.text+0x49b):对‘SSL_get_ex_data’未定义的引用 openssl-session.c:(.text+0x543):对‘SSL_SESSION_get_timeout’未定义的引用 openssl-session.c:(.text+0x5e4):对‘SSL_SESSION_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-session.c.o):在函数‘lws_tls_session_cache’中: openssl-session.c:(.text+0x6dc):对‘SSL_CTX_ctrl’未定义的引用 openssl-session.c:(.text+0x707):对‘SSL_CTX_ctrl’未定义的引用 openssl-session.c:(.text+0x721):对‘SSL_CTX_sess_set_new_cb’未定义的引用 openssl-session.c:(.text+0x740):对‘SSL_CTX_set_timeout’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-session.c.o):在函数‘lws_tls_session_dump_save’中: openssl-session.c:(.text+0x817):对‘i2d_SSL_SESSION’未定义的引用 openssl-session.c:(.text+0x87c):对‘i2d_SSL_SESSION’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-session.c.o):在函数‘lws_tls_session_dump_load’中: openssl-session.c:(.text+0xa5f):对‘d2i_SSL_SESSION’未定义的引用 openssl-session.c:(.text+0xb14):对‘SSL_SESSION_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘sk_X509_value’中: openssl-server.c:(.text+0x1c):对‘OPENSSL_sk_value’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘OpenSSL_verify_callback’中: openssl-server.c:(.text+0x39):对‘X509_STORE_CTX_get_current_cert’未定义的引用 openssl-server.c:(.text+0x42):对‘SSL_get_ex_data_X509_STORE_CTX_idx’未定义的引用 openssl-server.c:(.text+0x52):对‘X509_STORE_CTX_get_ex_data’未定义的引用 openssl-server.c:(.text+0x6a):对‘SSL_get_ex_data’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘lws_tls_server_client_cert_verify_config’中: openssl-server.c:(.text+0x186):对‘SSL_CTX_set_session_id_context’未定义的引用 openssl-server.c:(.text+0x1a5):对‘SSL_CTX_set_verify’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘lws_ssl_server_name_cb’中: openssl-server.c:(.text+0x214):对‘SSL_get_SSL_CTX’未定义的引用 openssl-server.c:(.text+0x27a):对‘SSL_get_servername’未定义的引用 openssl-server.c:(.text+0x33f):对‘SSL_set_SSL_CTX’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘lws_tls_server_certs_load’中: openssl-server.c:(.text+0x484):对‘SSL_CTX_use_certificate_chain_file’未定义的引用 openssl-server.c:(.text+0x492):对‘ERR_get_error’未定义的引用 openssl-server.c:(.text+0x4ba):对‘ERR_error_string’未定义的引用 openssl-server.c:(.text+0x529):对‘SSL_CTX_use_PrivateKey_file’未定义的引用 openssl-server.c:(.text+0x537):对‘ERR_get_error’未定义的引用 openssl-server.c:(.text+0x55f):对‘ERR_error_string’未定义的引用 openssl-server.c:(.text+0x688):对‘SSL_CTX_use_certificate_ASN1’未定义的引用 openssl-server.c:(.text+0x758):对‘SSL_CTX_use_PrivateKey_ASN1’未定义的引用 openssl-server.c:(.text+0x787):对‘SSL_CTX_use_PrivateKey_ASN1’未定义的引用 openssl-server.c:(.text+0x7e6):对‘SSL_CTX_check_private_key’未定义的引用 openssl-server.c:(.text+0x839):对‘OBJ_sn2nid’未定义的引用 openssl-server.c:(.text+0x873):对‘EC_KEY_new_by_curve_name’未定义的引用 openssl-server.c:(.text+0x8cc):对‘SSL_CTX_ctrl’未定义的引用 openssl-server.c:(.text+0x8d8):对‘EC_KEY_free’未定义的引用 openssl-server.c:(.text+0x8f3):对‘SSL_CTX_set_options’未定义的引用 openssl-server.c:(.text+0x96f):对‘SSL_CTX_ctrl’未定义的引用 openssl-server.c:(.text+0x9c3):对‘X509_get_pubkey’未定义的引用 openssl-server.c:(.text+0xa01):对‘EVP_PKEY_id’未定义的引用 openssl-server.c:(.text+0xa08):对‘EVP_PKEY_type’未定义的引用 openssl-server.c:(.text+0xa40):对‘EVP_PKEY_get1_EC_KEY’未定义的引用 openssl-server.c:(.text+0xa96):对‘SSL_CTX_ctrl’未定义的引用 openssl-server.c:(.text+0xaa2):对‘EC_KEY_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘lws_tls_server_vhost_backend_init’中: openssl-server.c:(.text+0xadc):对‘TLS_server_method’未定义的引用 openssl-server.c:(.text+0xaec):对‘ERR_get_error’未定义的引用 openssl-server.c:(.text+0xb11):对‘ERR_error_string’未定义的引用 openssl-server.c:(.text+0xb4f):对‘SSL_CTX_new’未定义的引用 openssl-server.c:(.text+0xb72):对‘ERR_get_error’未定义的引用 openssl-server.c:(.text+0xb97):对‘ERR_error_string’未定义的引用 openssl-server.c:(.text+0xbef):对‘SSL_CTX_set_ex_data’未定义的引用 openssl-server.c:(.text+0xc07):对‘SSL_CTX_set_options’未定义的引用 openssl-server.c:(.text+0xc1f):对‘SSL_CTX_set_options’未定义的引用 openssl-server.c:(.text+0xc37):对‘SSL_CTX_set_options’未定义的引用 openssl-server.c:(.text+0xc4f):对‘SSL_CTX_set_options’未定义的引用 openssl-server.c:(.text+0xc80):对‘SSL_CTX_set_cipher_list’未定义的引用 openssl-server.c:(.text+0xc9f):对‘SSL_CTX_callback_ctrl’未定义的引用 openssl-server.c:(.text+0xcca):对‘SSL_CTX_ctrl’未定义的引用 openssl-server.c:(.text+0xd00):对‘SSL_CTX_load_verify_locations’未定义的引用 openssl-server.c:(.text+0xd55):对‘SSL_CTX_set_options’未定义的引用 openssl-server.c:(.text+0xd89):对‘SSL_CTX_clear_options’未定义的引用 openssl-server.c:(.text+0xd9c):对‘SSL_CTX_get_options’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘lws_tls_server_new_nonblocking’中: openssl-server.c:(.text+0xe88):对‘ERR_clear_error’未定义的引用 openssl-server.c:(.text+0xe9f):对‘SSL_new’未定义的引用 openssl-server.c:(.text+0xf1d):对‘SSL_set_ex_data’未定义的引用 openssl-server.c:(.text+0xf35):对‘SSL_set_fd’未定义的引用 openssl-server.c:(.text+0xf57):对‘SSL_ctrl’未定义的引用 openssl-server.c:(.text+0xf6a):对‘SSL_get_rbio’未定义的引用 openssl-server.c:(.text+0xf90):对‘BIO_ctrl’未定义的引用 openssl-server.c:(.text+0xfbb):对‘SSL_get_wbio’未定义的引用 openssl-server.c:(.text+0xfe1):对‘BIO_ctrl’未定义的引用 openssl-server.c:(.text+0x1028):对‘SSL_set_info_callback’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘lws_tls_server_abort_connection’中: openssl-server.c:(.text+0x1053):对‘SSL_shutdown’未定义的引用 openssl-server.c:(.text+0x1066):对‘SSL_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-server.c.o):在函数‘lws_tls_server_accept’中: openssl-server.c:(.text+0x10b4):对‘ERR_clear_error’未定义的引用 openssl-server.c:(.text+0x10c7):对‘SSL_accept’未定义的引用 openssl-server.c:(.text+0x1171):对‘SSL_pending’未定义的引用 openssl-server.c:(.text+0x1203):对‘SSL_want’未定义的引用 openssl-server.c:(.text+0x1287):对‘SSL_want’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-client.c.o):在函数‘OpenSSL_client_verify_callback’中: openssl-client.c:(.text+0x33):对‘X509_STORE_CTX_get_error’未定义的引用 openssl-client.c:(.text+0x45):对‘SSL_get_ex_data_X509_STORE_CTX_idx’未定义的引用 openssl-client.c:(.text+0x55):对‘X509_STORE_CTX_get_ex_data’未定义的引用 openssl-client.c:(.text+0x6d):对‘SSL_get_ex_data’未定义的引用 openssl-client.c:(.text+0xe3):对‘X509_STORE_CTX_set_error’未定义的引用 openssl-client.c:(.text+0x131):对‘X509_STORE_CTX_set_error’未定义的引用 openssl-client.c:(.text+0x1a3):对‘X509_STORE_CTX_set_error’未定义的引用 openssl-client.c:(.text+0x1b2):对‘SSL_get_ex_data_X509_STORE_CTX_idx’未定义的引用 openssl-client.c:(.text+0x1c2):对‘X509_STORE_CTX_get_ex_data’未定义的引用 openssl-client.c:(.text+0x1da):对‘SSL_get_ex_data’未定义的引用 openssl-client.c:(.text+0x259):对‘X509_STORE_CTX_get_error’未定义的引用 openssl-client.c:(.text+0x26e):对‘X509_STORE_CTX_get_error_depth’未定义的引用 openssl-client.c:(.text+0x27e):对‘X509_verify_cert_error_string’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-client.c.o):在函数‘lws_ssl_client_bio_create’中: openssl-client.c:(.text+0x3f1):对‘SSL_new’未定义的引用 openssl-client.c:(.text+0x438):对‘ERR_error_string’未定义的引用 openssl-client.c:(.text+0x4d0):对‘SSL_set_info_callback’未定义的引用 openssl-client.c:(.text+0x4fa):对‘SSL_get0_param’未定义的引用 openssl-client.c:(.text+0x50f):对‘X509_VERIFY_PARAM_set_hostflags’未定义的引用 openssl-client.c:(.text+0x525):对‘X509_VERIFY_PARAM_set1_ip_asc’未定义的引用 openssl-client.c:(.text+0x556):对‘X509_VERIFY_PARAM_set1_host’未定义的引用 openssl-client.c:(.text+0x578):对‘SSL_set_verify’未定义的引用 openssl-client.c:(.text+0x59d):对‘SSL_ctrl’未定义的引用 openssl-client.c:(.text+0x5c7):对‘SSL_ctrl’未定义的引用 openssl-client.c:(.text+0x5e0):对‘BIO_new_socket’未定义的引用 openssl-client.c:(.text+0x626):对‘SSL_set_bio’未定义的引用 openssl-client.c:(.text+0x64b):对‘BIO_ctrl’未定义的引用 openssl-client.c:(.text+0x742):对‘SSL_set_alpn_protos’未定义的引用 openssl-client.c:(.text+0x767):对‘SSL_set_ex_data’未定义的引用 openssl-client.c:(.text+0x816):对‘SSL_use_certificate_ASN1’未定义的引用 openssl-client.c:(.text+0x8de):对‘SSL_use_PrivateKey_ASN1’未定义的引用 openssl-client.c:(.text+0x90c):对‘SSL_use_PrivateKey_ASN1’未定义的引用 openssl-client.c:(.text+0x94f):对‘SSL_check_private_key’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-client.c.o):在函数‘lws_tls_client_connect’中: openssl-client.c:(.text+0xa21):对‘ERR_clear_error’未定义的引用 openssl-client.c:(.text+0xa3f):对‘SSL_connect’未定义的引用 openssl-client.c:(.text+0xb2d):对‘ERR_error_string_n’未定义的引用 openssl-client.c:(.text+0xb4a):对‘SSL_session_reused’未定义的引用 openssl-client.c:(.text+0xb61):对‘SSL_get_session’未定义的引用 openssl-client.c:(.text+0xb88):对‘SSL_SESSION_set_time’未定义的引用 openssl-client.c:(.text+0xba1):对‘SSL_want’未定义的引用 openssl-client.c:(.text+0xbc9):对‘SSL_want’未定义的引用 openssl-client.c:(.text+0xc06):对‘SSL_get0_alpn_selected’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-client.c.o):在函数‘lws_tls_client_confirm_peer_cert’中: openssl-client.c:(.text+0xd20):对‘ERR_clear_error’未定义的引用 openssl-client.c:(.text+0xd33):对‘SSL_get_verify_result’未定义的引用 openssl-client.c:(.text+0xe28):对‘ERR_error_string’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-client.c.o):在函数‘lws_tls_client_vhost_extra_cert_mem’中: openssl-client.c:(.text+0xeaf):对‘d2i_X509’未定义的引用 openssl-client.c:(.text+0xef9):对‘SSL_CTX_get_cert_store’未定义的引用 openssl-client.c:(.text+0xf2d):对‘X509_free’未定义的引用 openssl-client.c:(.text+0xf47):对‘X509_STORE_add_cert’未定义的引用 openssl-client.c:(.text+0xf79):对‘X509_free’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-client.c.o):在函数‘lws_tls_client_create_vhost_context’中: openssl-client.c:(.text+0xfbf):对‘TLS_client_method’未定义的引用 openssl-client.c:(.text+0xfcf):对‘ERR_get_error’未定义的引用 openssl-client.c:(.text+0xff7):对‘ERR_error_string’未定义的引用 openssl-client.c:(.text+0x102e):对‘EVP_MD_CTX_new’未定义的引用 openssl-client.c:(.text+0x1048):对‘EVP_sha256’未定义的引用 openssl-client.c:(.text+0x105f):对‘EVP_DigestInit_ex’未定义的引用 openssl-client.c:(.text+0x1070):对‘EVP_MD_CTX_free’未定义的引用 openssl-client.c:(.text+0x10af):对‘EVP_DigestUpdate’未定义的引用 openssl-client.c:(.text+0x10e4):对‘EVP_DigestUpdate’未定义的引用 openssl-client.c:(.text+0x1116):对‘EVP_DigestUpdate’未定义的引用 openssl-client.c:(.text+0x114e):对‘EVP_DigestUpdate’未定义的引用 openssl-client.c:(.text+0x1180):对‘EVP_DigestUpdate’未定义的引用 //usr/local/lib/libwebsockets.a(openssl-client.c.o):openssl-client.c:(.text+0x11a3): 跟着更多未定义的参考到 EVP_DigestUpdate //usr/local/lib/libwebsockets.a(openssl-client.c.o):在函数‘lws_tls_client_create_vhost_context’中: openssl-client.c:(.text+0x123c):对‘EVP_DigestFinal_ex’未定义的引用 openssl-client.c:(.text+0x1248):对‘EVP_MD_CTX_free’未定义的引用 openssl-client.c:(.text+0x1350):对‘ERR_clear_error’未定义的引用 openssl-client.c:(.text+0x135c):对‘SSL_CTX_new’未定义的引用 openssl-client.c:(.text+0x1385):对‘ERR_get_error’未定义的引用 openssl-client.c:(.text+0x13ad):对‘ERR_error_string’未定义的引用 openssl-client.c:(.text+0x1420):对‘SSL_CTX_free’未定义的引用 openssl-client.c:(.text+0x1567):对‘SSL_CTX_set_options’未定义的引用 openssl-client.c:(.text+0x1582):对‘SSL_CTX_set_options’未定义的引用 openssl-client.c:(.text+0x15a7):对‘SSL_CTX_ctrl’未定义的引用 openssl-client.c:(.text+0x15e4):对‘SSL_CTX_set_options’未定义的引用 openssl-client.c:(.text+0x1621):对‘SSL_CTX_clear_options’未定义的引用 openssl-client.c:(.text+0x164b):对‘SSL_CTX_set_cipher_list’未定义的引用 openssl-client.c:(.text+0x1677):对‘SSL_CTX_set_default_verify_paths’未定义的引用 openssl-client.c:(.text+0x16b6):对‘SSL_CTX_load_verify_locations’未定义的引用 openssl-client.c:(.text+0x170f):对‘SSL_CTX_load_verify_locations’未定义的引用 openssl-client.c:(.text+0x1810):对‘d2i_X509’未定义的引用 openssl-client.c:(.text+0x185f):对‘X509_STORE_new’未定义的引用 openssl-client.c:(.text+0x1876):对‘X509_STORE_add_cert’未定义的引用 openssl-client.c:(.text+0x1886):对‘X509_STORE_free’未定义的引用 openssl-client.c:(.text+0x18c0):对‘SSL_CTX_set_cert_store’未定义的引用 openssl-client.c:(.text+0x18e9):对‘X509_free’未定义的引用 openssl-client.c:(.text+0x197a):对‘SSL_CTX_use_certificate_chain_file’未定义的引用 openssl-client.c:(.text+0x1a6e):对‘SSL_CTX_use_certificate_ASN1’未定义的引用 openssl-client.c:(.text+0x1b3b):对‘SSL_CTX_use_PrivateKey_file’未定义的引用 openssl-client.c:(.text+0x1b9f):对‘SSL_CTX_check_private_key’未定义的引用 openssl-client.c:(.text+0x1c69):对‘SSL_CTX_use_PrivateKey_ASN1’未定义的引用 openssl-client.c:(.text+0x1c9e):对‘SSL_CTX_use_PrivateKey_ASN1’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘register_frame_info.part.4’中: (.text+0x1692):对‘pthread_mutex_lock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘__register_frame_info_bases’中: (.text+0x1717):对‘pthread_mutex_lock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘register_frame_info_table_bases’中: (.text+0x17eb):对‘pthread_mutex_lock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘deregister_frame_info_bases’中: (.text+0x188e):对‘pthread_mutex_lock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘deregister_frame_info_bases’中: (.text+0x1916):对‘pthread_mutex_unlock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘_Unwind_Find_FDE’中: (.text+0x19e8):对‘pthread_mutex_lock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘_Unwind_Find_FDE’中: (.text+0x1a32):对‘pthread_mutex_unlock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘_Unwind_Find_FDE’中: (.text+0x1b2b):对‘pthread_mutex_unlock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘register_frame_info.part.4’中: (.text+0x16b1):对‘pthread_mutex_unlock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘__register_frame_info_bases’中: (.text+0x1736):对‘pthread_mutex_unlock’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/6/libgcc_eh.a(unwind-dw2-fde-dip.o):在函数‘register_frame_info_table_bases’中: (.text+0x180a):对‘pthread_mutex_unlock’未定义的引用 collect2: error: ld returned 1 exit status Makefile:85: recipe for target 'mosquitto' failed make[1]: [mosquitto] Error 1 make[1]: Leaving directory '/opt/mosquitto-2.0.13/src' Makefile:66: recipe for target 'mosquitto' failed make: [mosquitto] Error 2