warmcat / libwebsockets

canonical libwebsockets.org networking library
https://libwebsockets.org
Other
4.81k stars 1.49k forks source link

make mosquitto static websockets #2492

Closed fwebcc closed 3 years ago

fwebcc commented 3 years ago

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

lws-team commented 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.