我无法将libcurl编译为在c ++项目中工作的静态库。 构建包含curl的项目会导致链接器错误。
我从https://curl.haxx.se/download.html下载了curl的源代码。 我试图按照curl-7.65.1 \ winbuild \ BUILD.WINDOWS.txt中的说明将其构建为静态库
我的Visual Studio编译设置为Release和x86
(我在上述工作流程中还尝试了x64的整个过程,并进行了修改[用*标记]。结果是同一种链接器错误)
使用以下示例代码测试卷曲:
#include <stdio.h>
#include <iostream>
#define CURL_STATICLIB
#include "curl/curl.h"
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://google.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
std::cin.get();
}
1 > ------Build started : Project: demoCurl, Configuration : Release Win32------
1 > Application.cpp
1 > nonblock.obj : error LNK2001 : unresolved external symbol __imp__ioctlsocket@12
1 > nonblock.obj : error LNK2001 : unresolved external symbol __imp__ioctlsocket@12
1 > sendf.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > telnet.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > tftp.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > asyn - thread.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > ftp.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > select.obj : error LNK2001 : unresolved external symbol __imp__WSAGetLastError@0
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__bind@12
1 > ftp.obj : error LNK2001 : unresolved external symbol __imp__bind@12
1 > tftp.obj : error LNK2001 : unresolved external symbol __imp__bind@12
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__closesocket@4
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__connect@12
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__getpeername@12
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__getsockname@12
1 > ftp.obj : error LNK2001 : unresolved external symbol __imp__getsockname@12
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__getsockopt@20
1 > smb.obj : error LNK2001 : unresolved external symbol __imp__htons@4
1 > socks_sspi.obj : error LNK2001 : unresolved external symbol __imp__htons@4
1 > telnet.obj : error LNK2001 : unresolved external symbol __imp__htons@4
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__htons@4
1 > curl_addrinfo.obj : error LNK2001 : unresolved external symbol __imp__htons@4
1 > doh.obj : error LNK2001 : unresolved external symbol __imp__htons@4
1 > ftp.obj : error LNK2001 : unresolved external symbol __imp__htons@4
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__ntohs@4
1 > ftp.obj : error LNK2001 : unresolved external symbol __imp__ntohs@4
1 > socks_sspi.obj : error LNK2001 : unresolved external symbol __imp__ntohs@4
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__recv@16
1 > sendf.obj : error LNK2001 : unresolved external symbol __imp__recv@16
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__setsockopt@20
1 > transfer.obj : error LNK2001 : unresolved external symbol __imp__setsockopt@20
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__socket@12
1 > hostip6.obj : error LNK2001 : unresolved external symbol __imp__socket@12
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__WSASetLastError@4
1 > curl_addrinfo.obj : error LNK2001 : unresolved external symbol __imp__WSASetLastError@4
1 > select.obj : error LNK2001 : unresolved external symbol __imp__WSASetLastError@4
1 > connect.obj : error LNK2001 : unresolved external symbol __imp__WSAIoctl@36
1 > transfer.obj : error LNK2001 : unresolved external symbol __imp__WSAIoctl@36
1 > curl_addrinfo.obj : error LNK2001 : unresolved external symbol __imp__getaddrinfo@16
1 > curl_addrinfo.obj : error LNK2001 : unresolved external symbol __imp__freeaddrinfo@4
1 > curl_gethostname.obj : error LNK2001 : unresolved external symbol __imp__gethostname@8
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptAcquireContextA@20
1 > md5.obj : error LNK2001 : unresolved external symbol __imp__CryptAcquireContextA@20
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptAcquireContextA@20
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptReleaseContext@8
1 > md5.obj : error LNK2001 : unresolved external symbol __imp__CryptReleaseContext@8
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptReleaseContext@8
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptDestroyKey@4
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptGetHashParam@20
1 > md5.obj : error LNK2001 : unresolved external symbol __imp__CryptGetHashParam@20
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptGetHashParam@20
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptImportKey@24
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptEncrypt@28
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptCreateHash@20
1 > md5.obj : error LNK2001 : unresolved external symbol __imp__CryptCreateHash@20
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptCreateHash@20
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptHashData@16
1 > md5.obj : error LNK2001 : unresolved external symbol __imp__CryptHashData@16
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptHashData@16
1 > curl_ntlm_core.obj : error LNK2001 : unresolved external symbol __imp__CryptDestroyHash@4
1 > md5.obj : error LNK2001 : unresolved external symbol __imp__CryptDestroyHash@4
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptDestroyHash@4
1 > ftp.obj : error LNK2001 : unresolved external symbol __imp__accept@12
1 > ftp.obj : error LNK2001 : unresolved external symbol __imp__listen@8
1 > idn_win32.obj : error LNK2001 : unresolved external symbol __imp__IdnToAscii@20
1 > idn_win32.obj : error LNK2001 : unresolved external symbol __imp__IdnToUnicode@20
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_init
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_sslinit
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_unbind_s
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_set_option
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_simple_bind_s
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_bind_s
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_search_s
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_msgfree
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_err2string
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_first_entry
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_next_entry
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_first_attribute
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_next_attribute
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_get_values_len
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_value_free_len
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_get_dn
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ldap_memfree
1 > ldap.obj : error LNK2001 : unresolved external symbol __imp__ber_free
1 > select.obj : error LNK2001 : unresolved external symbol ___WSAFDIsSet@8
1 > select.obj : error LNK2001 : unresolved external symbol __imp__select@20
1 > sendf.obj : error LNK2001 : unresolved external symbol __imp__send@16
1 > telnet.obj : error LNK2001 : unresolved external symbol __imp__send@16
1 > system_win32.obj : error LNK2001 : unresolved external symbol __imp__WSAStartup@8
1 > telnet.obj : error LNK2001 : unresolved external symbol __imp__WSAStartup@8
1 > system_win32.obj : error LNK2001 : unresolved external symbol __imp__WSACleanup@0
1 > telnet.obj : error LNK2001 : unresolved external symbol __imp__WSACleanup@0
1 > tftp.obj : error LNK2001 : unresolved external symbol __imp__recvfrom@24
1 > tftp.obj : error LNK2001 : unresolved external symbol __imp__sendto@24
1 > krb5_sspi.obj : error LNK2001 : unresolved external symbol __imp__htonl@4
1 > krb5_sspi.obj : error LNK2001 : unresolved external symbol __imp__ntohl@4
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptGenRandom@12
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CertOpenStore@20
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertOpenStore@20
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CertCloseStore@8
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertCloseStore@8
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CertEnumCertificatesInStore@8
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CertFindCertificateInStore@24
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CertFreeCertificateContext@4
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertFreeCertificateContext@4
1 > schannel.obj : error LNK2001 : unresolved external symbol __imp__CryptStringToBinaryA@28
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertAddCertificateContextToStore@16
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertGetNameStringA@24
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CryptQueryObject@44
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertCreateCertificateChainEngine@8
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertFreeCertificateChainEngine@4
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertGetCertificateChain@32
1 > schannel_verify.obj : error LNK2001 : unresolved external symbol __imp__CertFreeCertificateChain@4
1 > C:\...\demoCurl\Release\demoCurl.exe : fatal error LNK1120 : 72 unresolved externals
1 > Done building project "demoCurl.vcxproj" --FAILED.
========== Build: 0 succeeded, 1 failed, 0 up - to - date, 0 skipped ==========