преамбула
В этой статье объясняется, как использовать vs2019 для компиляции библиотеки libcurl и как включить поддержку функций https и gzip. У меня есть скомпилированный файл статической библиотеки libcurl, который поддерживает https и gzip и может быть загружен напрямую:
Если вы хотите самостоятельно скомпилировать другие версии файлов библиотек, вы можете скомпилировать их в соответствии со следующим руководством.
1. Загрузите исходный код библиотеки, который необходимо использовать.
1. Библиотека libcurl: curl-Скачать
Я обычно загружаю сжатые пакеты в формате zip, поэтому я выбираю ссылку в красной строке для скачивания
2. библиотека openssl: библиотека OpenSSL и заголовочные файлы — ресурсы документа C++ — загрузка CSDN
3.библиотека zlib: скомпилированная библиотека zlib и файлы заголовков — ресурсы документа C++ — загрузка через CSDN
Два, начать компилировать
Скопируйте все исходные коды загруженных библиотек в каталог и сохраните их (как показано на рисунке ниже) .Теперь, когда подготовка завершена, давайте начнем компилировать исходные коды.
1. Скомпилируйте zlib: разархивируйте zlib.zip, загруженный по приведенной выше ссылке, откройте zlib.vcxproj с помощью vs2019, нажмите «Компилировать», чтобы сгенерировать файл zlib.lib.
2. OpenSSL: разархивируйте openssl.zip, загруженный по ссылке выше.
3. Скомпилируйте libcurl:
а. Разархивируйте загруженный файл библиотеки, откройте curl-all.sln с помощью vs2019 в каталоге curl-7.83.1\projects\Windows\VC15\
б) Выберите вариант компиляции: Lib Release — DLL OpenSSL
в) Щелкните правой кнопкой мыши свойства проекта -> C/C++ -> Общие -> Дополнительные каталоги включения, добавьте каталоги файлов заголовков zlib и OpenSSL.
г. Свойства проекта -> C/C++ -> Препроцессор -> Определение препроцессора, добавьте в него 2 параметра: USE_OPENSSL, USE_ZLIB
д. Добавьте следующий код в конец файла config-win32.h:
/* USE_ZLIB on cmd-line */
#ifdef USE_ZLIB
#define HAVE_ZLIB_H 1
#define HAVE_LIBZ 1
#endif
е. После их завершения можно приступать к компиляции.После компиляции будет сгенерирован файл libcurl.lib.Заголовочные файлы, которые необходимо использовать, находятся в каталоге curl-7_75_0\include\curl
3. Другие вопросы, требующие внимания
Наша программа столкнется с некоторыми ошибками ссылок в процессе использования скомпилированного libcurl.lib, вы можете добавить в программу следующую библиотеку lib. Это связано с тем, что libcurl при компиляции обращается к сторонним библиотекам.
#pragma comment(lib, "Crypt32.lib")
#pragma comment(lib, "Ws2_32.lib")
#pragma comment(lib, "Wldap32.lib")
#pragma comment(lib, "libcurl.lib")
#pragma comment(lib, "libssl.lib")
#pragma comment(lib, "libcrypto.lib")
#pragma comment(lib, "zlib.lib")