<div>Dear Sir</div><div>Could you kindly update Cmakelist to generate all the necessary .a library the libwebsockets.a depends on?</div><div><br></div><div>Thank you!</div><div><div><br></div><div><br></div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ 原始邮件 ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>发件人:</b> "Andy Green";<andy@warmcat.com>;</div><div><b>发送时间:</b> 2015年3月29日(星期天) 中午1:13</div><div><b>收件人:</b> "Jeffrey Zhao"<chunyong.zhao@qq.com>; "libwebsockets@ml.libwebsockets."<libwebsockets@ml.libwebsockets.org>; <wbr></div><div></div><div><b>主题:</b>  Re: 回复: Re: 回复: [Libwebsockets] Static Link issue</div></div><div><br></div><br><br>On 29 March 2015 13:00:06 GMT+08:00, Jeffrey Zhao <chunyong.zhao@qq.com> wrote:<br>>Dear Sir<br>>Here is the result based on your idea.<br>><br><br>Yeah... it's telling you to feed it the .a for zlib and openssl bits as well.<br><br>That is what static-linked means everything and every dependency is brought together at once, there is no "later".<br><br>So you must feed it everything at once.<br><br>This is nothing to do with libwebsockets.<br><br>-Andy<br><br>><br>><br>>gcc -lpthread -Wall -o2 test-server.c<br>>/Users/blue/Downloads/libwebsockets/libwebsockets/build/lib/libwebsockets.a<br>>-o test-server<br>>Undefined symbols for architecture x86_64:<br>>  "_BIO_ctrl", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_BIO_new_socket", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>  "_CRYPTO_cleanup_all_ex_data", referenced from:<br>>      _lws_ssl_destroy in libwebsockets.a(ssl.c.o)<br>>      _lws_ssl_context_destroy in libwebsockets.a(ssl.c.o)<br>>  "_ERR_error_string", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_ERR_error_string_n", referenced from:<br>>      _libwebsockets_decode_ssl_error in libwebsockets.a(ssl.c.o)<br>>  "_ERR_free_strings", referenced from:<br>>      _lws_ssl_destroy in libwebsockets.a(ssl.c.o)<br>>      _lws_ssl_context_destroy in libwebsockets.a(ssl.c.o)<br>>  "_ERR_get_error", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _libwebsockets_decode_ssl_error in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_ERR_remove_state", referenced from:<br>>      _lws_ssl_destroy in libwebsockets.a(ssl.c.o)<br>>      _lws_ssl_context_destroy in libwebsockets.a(ssl.c.o)<br>>  "_EVP_cleanup", referenced from:<br>>      _lws_ssl_destroy in libwebsockets.a(ssl.c.o)<br>>      _lws_ssl_context_destroy in libwebsockets.a(ssl.c.o)<br>>  "_OPENSSL_add_all_algorithms_noconf", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_check_private_key", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_ctrl", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_free", referenced from:<br>>      _lws_ssl_destroy in libwebsockets.a(ssl.c.o)<br>>      _lws_ssl_context_destroy in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_load_verify_locations", referenced from:<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_new", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_set_cipher_list", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_set_default_passwd_cb", referenced from:<br>>      _lws_ssl_bind_passphrase in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_set_default_passwd_cb_userdata", referenced from:<br>>      _lws_ssl_bind_passphrase in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_set_default_verify_paths", referenced from:<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_set_verify", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_use_PrivateKey_file", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_CTX_use_certificate_chain_file", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_accept", referenced from:<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_connect", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>  "_SSL_ctrl", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_free", referenced from:<br>>      _lws_ssl_close in libwebsockets.a(ssl.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_get_error", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>      _lws_ssl_capable_read in libwebsockets.a(ssl.c.o)<br>>      _lws_ssl_capable_write in libwebsockets.a(ssl.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_get_ex_data", referenced from:<br>>      _OpenSSL_verify_callback in libwebsockets.a(ssl.c.o)<br>>  "_SSL_get_ex_data_X509_STORE_CTX_idx", referenced from:<br>>      _OpenSSL_verify_callback in libwebsockets.a(ssl.c.o)<br>>  "_SSL_get_ex_new_index", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_get_fd", referenced from:<br>>      _lws_ssl_close in libwebsockets.a(ssl.c.o)<br>>  "_SSL_get_rbio", referenced from:<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_get_verify_result", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>  "_SSL_get_wbio", referenced from:<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_library_init", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_load_error_strings", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_new", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_pending", referenced from:<br>>      _lws_ssl_capable_read in libwebsockets.a(ssl.c.o)<br>>  "_SSL_read", referenced from:<br>>      _lws_ssl_capable_read in libwebsockets.a(ssl.c.o)<br>>  "_SSL_set_bio", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>  "_SSL_set_ex_data", referenced from:<br>>      _lws_client_socket_service in libwebsockets.a(client.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_set_fd", referenced from:<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_shutdown", referenced from:<br>>      _lws_ssl_close in libwebsockets.a(ssl.c.o)<br>>      _lws_server_socket_service_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSL_write", referenced from:<br>>      _lws_ssl_capable_write in libwebsockets.a(ssl.c.o)<br>>  "_SSLv23_client_method", referenced from:<br>>      _lws_context_init_client_ssl in libwebsockets.a(ssl.c.o)<br>>  "_SSLv23_server_method", referenced from:<br>>      _lws_context_init_server_ssl in libwebsockets.a(ssl.c.o)<br>>  "_X509_STORE_CTX_get_ex_data", referenced from:<br>>      _OpenSSL_verify_callback in libwebsockets.a(ssl.c.o)<br>>  "_deflate", referenced from:<br>>_lws_extension_callback_deflate_frame in<br>>libwebsockets.a(extension-deflate-frame.c.o)<br>>     (maybe you meant: _lws_extension_callback_deflate_frame)<br>>  "_deflateEnd", referenced from:<br>>_lws_extension_callback_deflate_frame in<br>>libwebsockets.a(extension-deflate-frame.c.o)<br>>  "_deflateInit2_", referenced from:<br>>_lws_extension_callback_deflate_frame in<br>>libwebsockets.a(extension-deflate-frame.c.o)<br>>  "_inflate", referenced from:<br>>_lws_extension_callback_deflate_frame in<br>>libwebsockets.a(extension-deflate-frame.c.o)<br>>  "_inflateEnd", referenced from:<br>>_lws_extension_callback_deflate_frame in<br>>libwebsockets.a(extension-deflate-frame.c.o)<br>>  "_inflateInit2_", referenced from:<br>>_lws_extension_callback_deflate_frame in<br>>libwebsockets.a(extension-deflate-frame.c.o)<br>>ld: symbol(s) not found for architecture x86_64<br>>clang: error: linker command failed with exit code 1 (use -v to see<br>>invocation)<br>>make: *** [test-server] Error 1‍<br>><br>>------------------ 原始邮件 ------------------<br>>发件人: "Andy Green";<andy@warmcat.com>;<br>>发送时间: 2015年3月29日(星期天) 中午12:48<br>>收件人: "Jeffrey Zhao"<chunyong.zhao@qq.com>;<br>>"libwebsockets@ml.libwebsockets."<libwebsockets@ml.libwebsockets.org>; <br>><br>>主题:  Re: 回复: [Libwebsockets] Static Link issue<br>><br>><br>><br>><br>><br>>On 29 March 2015 12:29:19 GMT+08:00, Jeffrey Zhao<br>><chunyong.zhao@qq.com> wrote:<br>>>Dear Andy<br>>>For some reasons, we need to use static link.<br>><br>>Have you tried explicitly giving it the libwebsockets.a file instead of<br>>-l?<br>><br>>>Could you tell me more details regarding clang list?<br>><br>>Google found this<br>><br>>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users<br>><br>>I have no idea if your question is inappropriate there.<br>><br>>-Andy<br>><br>>><br>>><br>>><br>>>Thanks.<br>>><br>>><br>>><br>>><br>>><br>>><br>>>------------------ 原始邮件 ------------------<br>>>发件人: "Andy Green";<andy@warmcat.com>;<br>>>发送时间: 2015年3月28日(星期六) 上午6:58<br>>>收件人: "Jeffrey Zhao"<chunyong.zhao@qq.com>;<br>>>"libwebsockets@ml.libwebsockets."<libwebsockets@ml.libwebsockets.org>;<br>><br>>><br>>>主题: Re: [Libwebsockets] Static Link issue<br>>><br>>><br>>><br>>><br>>><br>>>On 27 March 2015 21:22:50 GMT+08:00, Jeffrey Zhao<br>>><chunyong.zhao@qq.com> wrote:<br>>>>Dear Sir<br>>>>When I do the static link with libwebsockets, it indicates that<br>>crt0.o<br>>>>is not found.<br>>>>Any suggestion here?<br>>><br>>>It's not a question about lws.  crt0 is C Runtime Library.  Maybe try<br>>a<br>>>clang list.<br>>><br>>>Or, don't static link...<br>>><br>>>-Andy<br>>><br>>>><br>>>>thank you in advance.<br>>>><br>>>><br>>>><br>>>><br>>>><br>>>><br>>>>gcc -lpthread -Wall -o2 test-server.c -o test-server -static<br>>>>-lwebsockets<br>>>>-L/Users/blue/Downloads/libwebsockets‍/libwebsockets/build/lib/<br>>>>ld: library not found for -lcrt0.o<br>>>>clang: error: linker command failed with exit code 1 (use -v to see<br>>>>invocation)<br>>>>make: *** [cti-server] Error 1‍<br>>>><br>>>>------------------------------------------------------------------------<br>>>><br>>>>_______________________________________________<br>>>>Libwebsockets mailing list<br>>>>Libwebsockets@ml.libwebsockets.org<br>>>>http://ml.libwebsockets.org/mailman/listinfo/libwebsockets<br><br></div>