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: Requesting Help on libcurl compile

From: Ray Satiro via curl-library <curl-library_at_lists.haxx.se>
Date: Wed, 14 Sep 2022 14:02:36 -0400

On 9/14/2022 4:48 AM, Coffee Bug via curl-library wrote:
> #include <curl/curl.h>
> int main() {
>   curl_global_init(CURL_GLOBAL_DEFAULT);
> }
>
> I already encounter the following errors:
>
> libs\curl_new64\lib\libcurl.a(strerror.o):strerror.c|| undefined
> reference to `__imp___sys_nerr'|
> libs\curl_new64\lib\libcurl.a(strerror.o):strerror.c|| undefined
> reference to `__imp___sys_errlist'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertOpenSystemStoreA'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertEnumCertificatesInStore'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertEnumCertificatesInStore'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertGetIntendedKeyUsage'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertGetEnhancedKeyUsage'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertGetEnhancedKeyUsage'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(openssl.o):openssl.c|| undefined
> reference to `__imp_CertCloseStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_PFXImportCertStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFindCertificateInStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertCloseStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertCloseStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertEnumCertificatesInStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertEnumCertificatesInStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertOpenStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CryptStringToBinaryA'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFindCertificateInStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertEnumCertificatesInStore'|
> libs\curl_new64\lib\libcurl.a(schannel.o):schannel.c|| undefined
> reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertOpenStore'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertGetCertificateChain'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertFreeCertificateChainEngine'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertCloseStore'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertFreeCertificateChain'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertCreateCertificateChainEngine'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CryptQueryObject'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertAddCertificateContextToStore'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertFreeCertificateContext'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertGetNameStringA'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CertFindExtension'|
> libs\curl_new64\lib\libcurl.a(schannel_verify.o):schannel_verify.c||
> undefined reference to `__imp_CryptDecodeObjectEx'|
> ||error: ld returned 1 exit status|
> ||=== Build failed: 40 error(s), 4 warning(s) (0 minute(s), 2
> second(s)) ===|
>
> I use the following software versions:
>  - mingw-w64: downloaded and installed thru msys2
>  - libcurl: 7.85.0
>  - ide: codeblocks
>
> I have included in the compiler setup:
>   CURL_STATICLIB
>
> And have setup the linker options with:
>   -s -static -Wl,--add-stdcall-alias
>
> I have also added libraries (in the following order):
>   -loleaut32 -luser32 -lcurl -lnghttp2 -lidn2 -lngtcp2
> -lngtcp2_crypto_openssl -lnghttp3 -lssl -lssh2 -lcrypto -lz -lwldap32
> -lws2_32 -lwinmm -lgdi32 -lbcrypt -lbrotlidec -lbrotlicommon -lzstd
> -lgsasl
>
> I would appreciate any instructions on how I should proceed.  I
> suspect I might have not ordered the linking of libraries correctly?
> Thank you.


You can resolve most of those with -lcrypt32, but I'm not sure why you
see the sys_nerr and sys_errlist, that is odd. Try to compile this:

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
   /* print from errlist such as "Illegal byte sequence" etc */
   printf("%s\n", _sys_errlist[_sys_nerr - 1]);
   return 0;
}

-- 
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
Received on 2022-09-14