curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

Re: curl static build STILL gives me linker errors on Windows

From: Patrick Schlangen via curl-library <curl-library_at_lists.haxx.se>
Date: Tue, 12 Apr 2022 16:36:57 +0000


I think you need to link against ws2_32.lib from the Windows SDK as well.

Best,

Patrick

> Am 12.04.2022 um 18:29 schrieb Julien Matthey via curl-library <curl-library_at_lists.haxx.se>:
>
> Hello,
>
> Here is the process I followed:
>
> - Downloaded and built curl-7.82.0 (with the cmake BUILD_SHARED_LIBS option set to OFF).
>
> - I created a sample project and linked against: libcurl-d.lib (for debug builds); libcurl.lib (for release builds).
>
> - Added the -DCURL_STATICLIB flag to my compiler options in Visual Studio (this is the correct syntax for doing it as of now).
>
> My super simple sample project is:
>
>
> #include <curl/curl.h>
>
> int main(int argc, char** argv) {
> CURL* curl;
> CURLcode res;
> curl_global_init(CURL_GLOBAL_ALL);
> curl = curl_easy_init();
>
> if (curl) {
> curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.com");
> res = curl_easy_perform(curl);
> if (res != CURLE_OK)
> fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
>
> curl_easy_cleanup(curl);
> }
> curl_global_cleanup();
>
> return 0;
> }
>
>
> This gives me linker errors:
>
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_send référencé dans la fonction multi_wait
> 1>libcurl-d.lib(asyn-thread.obj) : error LNK2001: symbole externe non résolu __imp_send
> 1>libcurl-d.lib(sendf.obj) : error LNK2001: symbole externe non résolu __imp_send
> 1>libcurl-d.lib(telnet.obj) : error LNK2001: symbole externe non résolu __imp_send
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_WSACloseEvent référencé dans la fonction curl_multi_cleanup
> 1>libcurl-d.lib(telnet.obj) : error LNK2001: symbole externe non résolu __imp_WSACloseEvent
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_WSACreateEvent référencé dans la fonction Curl_multi_handle
> 1>libcurl-d.lib(telnet.obj) : error LNK2001: symbole externe non résolu __imp_WSACreateEvent
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_WSAEnumNetworkEvents référencé dans la fonction multi_wait
> 1>libcurl-d.lib(telnet.obj) : error LNK2001: symbole externe non résolu __imp_WSAEnumNetworkEvents
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_WSAEventSelect référencé dans la fonction multi_wait
> 1>libcurl-d.lib(telnet.obj) : error LNK2001: symbole externe non résolu __imp_WSAEventSelect
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_WSAResetEvent référencé dans la fonction multi_wait
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_WSASetEvent référencé dans la fonction curl_multi_wakeup
> 1>libcurl-d.lib(multi.obj) : error LNK2019: symbole externe non résolu __imp_WSAWaitForMultipleEvents référencé dans la fonction multi_wait
> 1>libcurl-d.lib(asyn-thread.obj) : error LNK2019: symbole externe non résolu __imp_closesocket référencé dans la fonction destroy_async_data
> 1>libcurl-d.lib(connect.obj) : error LNK2001: symbole externe non résolu __imp_closesocket
> 1>libcurl-d.lib(hostip.obj) : error LNK2001: symbole externe non résolu __imp_closesocket
> 1>libcurl-d.lib(socketpair.obj) : error LNK2001: symbole externe non résolu __imp_closesocket
> 1>libcurl-d.lib(telnet.obj) : error LNK2001: symbole externe non résolu __imp_WSAGetLastError
> 1>libcurl-d.lib(tftp.obj) : error LNK2001: symbole externe non résolu __imp_WSAGetLastError
> 1>libcurl-d.lib(asyn-thread.obj) : error LNK2001: symbole externe non résolu __imp_WSAGetLastError
> 1>libcurl-d.lib(sendf.obj) : error LNK2001: symbole externe non résolu __imp_WSAGetLastError
> 1>libcurl-d.lib(connect.obj) : error LNK2001: symbole externe non résolu __imp_WSAGetLastError
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_WSAGetLastError
> 1>libcurl-d.lib(sendf.obj) : error LNK2019: symbole externe non résolu __imp_recv référencé dans la fonction Curl_read_plain
> 1>libcurl-d.lib(connect.obj) : error LNK2001: symbole externe non résolu __imp_recv
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_bind référencé dans la fonction bindlocal
> 1>libcurl-d.lib(socketpair.obj) : error LNK2001: symbole externe non résolu __imp_bind
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_bind
> 1>libcurl-d.lib(tftp.obj) : error LNK2001: symbole externe non résolu __imp_bind
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_connect référencé dans la fonction singleipconnect
> 1>libcurl-d.lib(socketpair.obj) : error LNK2001: symbole externe non résolu __imp_connect
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_getpeername référencé dans la fonction Curl_conninfo_remote
> 1>libcurl-d.lib(socketpair.obj) : error LNK2001: symbole externe non résolu __imp_getpeername
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_getsockname référencé dans la fonction Curl_conninfo_local
> 1>libcurl-d.lib(socketpair.obj) : error LNK2001: symbole externe non résolu __imp_getsockname
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_getsockname
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_getsockopt référencé dans la fonction Curl_sndbufset
> 1>libcurl-d.lib(smb.obj) : error LNK2019: symbole externe non résolu __imp_htons référencé dans la fonction smb_connect
> 1>libcurl-d.lib(telnet.obj) : error LNK2001: symbole externe non résolu __imp_htons
> 1>libcurl-d.lib(doh.obj) : error LNK2001: symbole externe non résolu __imp_htons
> 1>libcurl-d.lib(connect.obj) : error LNK2001: symbole externe non résolu __imp_htons
> 1>libcurl-d.lib(hostip.obj) : error LNK2001: symbole externe non résolu __imp_htons
> 1>libcurl-d.lib(curl_addrinfo.obj) : error LNK2001: symbole externe non résolu __imp_htons
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_htons
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_ntohs référencé dans la fonction Curl_addr2string
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_ntohs
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_setsockopt référencé dans la fonction Curl_sndbufset
> 1>libcurl-d.lib(transfer.obj) : error LNK2001: symbole externe non résolu __imp_setsockopt
> 1>libcurl-d.lib(socketpair.obj) : error LNK2001: symbole externe non résolu __imp_setsockopt
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_socket référencé dans la fonction Curl_socket
> 1>libcurl-d.lib(hostip.obj) : error LNK2001: symbole externe non résolu __imp_socket
> 1>libcurl-d.lib(socketpair.obj) : error LNK2001: symbole externe non résolu __imp_socket
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_WSASetLastError référencé dans la fonction Curl_is_connected
> 1>libcurl-d.lib(select.obj) : error LNK2001: symbole externe non résolu __imp_WSASetLastError
> 1>libcurl-d.lib(curl_addrinfo.obj) : error LNK2001: symbole externe non résolu __imp_WSASetLastError
> 1>libcurl-d.lib(connect.obj) : error LNK2019: symbole externe non résolu __imp_WSAIoctl référencé dans la fonction tcpkeepalive
> 1>libcurl-d.lib(transfer.obj) : error LNK2001: symbole externe non résolu __imp_WSAIoctl
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_inet_pton
> 1>libcurl-d.lib(urlapi.obj) : error LNK2001: symbole externe non résolu __imp_inet_pton
> 1>libcurl-d.lib(connect.obj) : error LNK2001: symbole externe non résolu __imp_inet_pton
> 1>libcurl-d.lib(hostip.obj) : error LNK2001: symbole externe non résolu __imp_inet_pton
> 1>libcurl-d.lib(socks.obj) : error LNK2001: symbole externe non résolu __imp_inet_pton
> 1>libcurl-d.lib(curl_addrinfo.obj) : error LNK2001: symbole externe non résolu __imp_inet_pton
> 1>libcurl-d.lib(system_win32.obj) : error LNK2019: symbole externe non résolu __imp_WSAStartup référencé dans la fonction Curl_win32_init
> 1>libcurl-d.lib(system_win32.obj) : error LNK2019: symbole externe non résolu __imp_WSACleanup référencé dans la fonction Curl_win32_init
> 1>libcurl-d.lib(select.obj) : error LNK2019: symbole externe non résolu __WSAFDIsSet référencé dans la fonction Curl_poll
> 1>libcurl-d.lib(select.obj) : error LNK2019: symbole externe non résolu __imp_select référencé dans la fonction our_select
> 1>libcurl-d.lib(socketpair.obj) : error LNK2019: symbole externe non résolu __imp_accept référencé dans la fonction Curl_socketpair
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_accept
> 1>libcurl-d.lib(socketpair.obj) : error LNK2019: symbole externe non résolu __imp_htonl référencé dans la fonction Curl_socketpair
> 1>libcurl-d.lib(socketpair.obj) : error LNK2019: symbole externe non résolu __imp_listen référencé dans la fonction Curl_socketpair
> 1>libcurl-d.lib(ftp.obj) : error LNK2001: symbole externe non résolu __imp_listen
> 1>libcurl-d.lib(curl_addrinfo.obj) : error LNK2019: symbole externe non résolu __imp_getaddrinfo référencé dans la fonction Curl_getaddrinfo_ex
> 1>libcurl-d.lib(curl_addrinfo.obj) : error LNK2019: symbole externe non résolu __imp_freeaddrinfo référencé dans la fonction Curl_getaddrinfo_ex
> 1>libcurl-d.lib(tftp.obj) : error LNK2019: symbole externe non résolu __imp_recvfrom référencé dans la fonction tftp_receive_packet
> 1>libcurl-d.lib(tftp.obj) : error LNK2019: symbole externe non résolu __imp_sendto référencé dans la fonction tftp_rx
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_init référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_unbind_s référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_set_option référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_simple_bind_s référencé dans la fonction ldap_win_bind
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_search_s référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_msgfree référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_err2string référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_first_entry référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_next_entry référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_first_attribute référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_next_attribute référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_get_values_len référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_value_free_len référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_get_dn référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ldap_memfree référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(ldap.obj) : error LNK2019: symbole externe non résolu __imp_ber_free référencé dans la fonction _ldap_free_urldesc
> 1>libcurl-d.lib(nonblock.obj) : error LNK2019: symbole externe non résolu __imp_ioctlsocket référencé dans la fonction curlx_nonblock
> 1>libcurl-d.lib(curl_gethostname.obj) : error LNK2019: symbole externe non résolu __imp_gethostname référencé dans la fonction Curl_gethostname
>
> Note: if I compile against the .dll imp. libs (libcurl-d_imp.lib; libcurl_imp.lib) I don't get any linker error and my sample compiles. But then of course I need to use the .dll and I don't want to.
>
> -Julien
>
> --
> Unsubscribe: https://lists.haxx.se/listinfo/curl-library
> Etiquette: https://curl.haxx.se/mail/etiquette.html
-- 
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html
Received on 2022-04-12