компиляция libcurl 7.61.1 из исходного кода на Windows 10 - PullRequest
0 голосов
/ 13 июня 2019

Я работаю над существующим проектом C ++.Мы включаем libcurl в качестве статической библиотеки, которую мы создаем из исходного кода.Я пытаюсь обновить нас с версии 7.38.0 до версии 7.61.1.

Я скачал curl-7.61.1.zip отсюда: https://curl.haxx.se/download/.

Я не вносил изменений в исходный код и не запускал никаких скриптов, поставляемых с curl 7.61.1.

У нас есть существующее решение VS, которое мы использовали для компиляции curl 7.38.0, поэтому я начал с него и изменил по мере необходимости для новых файлов в curl 7.61.1.

Однако все скомпилировалось нормально, когда я пытаюсьсвязав скомпилированный результат в мой проект, я получаю следующие ошибки:

1>libcurl.lib(schannel.obj) : error LNK2019: unresolved external symbol __imp_CertOpenStore referenced in function schannel_connect_step1
1>libcurl.lib(schannel_verify.obj) : error LNK2001: unresolved external symbol __imp_CertOpenStore
1>libcurl.lib(schannel.obj) : error LNK2019: unresolved external symbol __imp_CertCloseStore referenced in function schannel_connect_step1
1>libcurl.lib(schannel_verify.obj) : error LNK2001: unresolved external symbol __imp_CertCloseStore
1>libcurl.lib(schannel.obj) : error LNK2019: unresolved external symbol __imp_CertFindCertificateInStore referenced in function schannel_connect_step1
1>libcurl.lib(schannel.obj) : error LNK2019: unresolved external symbol __imp_CertFreeCertificateContext referenced in function pkp_pin_peer_pubkey
1>libcurl.lib(schannel_verify.obj) : error LNK2001: unresolved external symbol __imp_CertFreeCertificateContext
1>libcurl.lib(schannel.obj) : error LNK2019: unresolved external symbol  __imp_CryptStringToBinaryA referenced in function schannel_connect_step1
1>libcurl.lib(schannel_verify.obj) : error LNK2019: unresolved external symbol __imp_CertAddCertificateContextToStore referenced in function add_certs_to_store
1>libcurl.lib(schannel_verify.obj) : error LNK2019: unresolved external symbol __imp_CertGetNameStringA referenced in function verify_host
1>libcurl.lib(schannel_verify.obj) : error LNK2019: unresolved external symbol __imp_CryptQueryObject referenced in function add_certs_to_store
1>libcurl.lib(schannel_verify.obj) : error LNK2019: unresolved external symbol __imp_CertCreateCertificateChainEngine referenced in function verify_certificate
1>libcurl.lib(schannel_verify.obj) : error LNK2019: unresolved external symbol __imp_CertFreeCertificateChainEngine referenced in function verify_certificate
1>libcurl.lib(schannel_verify.obj) : error LNK2019: unresolved external symbol __imp_CertGetCertificateChain referenced in function verify_certificate
1>libcurl.lib(schannel_verify.obj) : error LNK2019: unresolved external symbol __imp_CertFreeCertificateChain referenced in function verify_certificate
1>C:\Users\CoffeeTableEspresso\project\win64-vs15\debug-mt\executable.exe : fatal error LNK1120: 12 unresolved externals

Кто-нибудь сталкивался с подобными проблемами раньше?Пожалуйста, дайте мне знать, если мне нужно отредактировать это с дополнительной информацией.

1 Ответ

1 голос
/ 13 июня 2019

Как упоминал Питер в комментарии, мне нужно было ссылаться на библиотеки Windows.В этом случае ссылка на crypt32.lib решила проблему для меня.

...