Всем доброго времени суток! Сегодня я расскажу, что такое библиотека CURL, как её установить и интегрировать с интегрированной средой разработки Visual Studio 2019. Рассмотрим возможности данной библиотеки, создадим и запустим небольшой пример на языке программирования С++.
Что такое CURL?
CURL – это библиотека с открытым исходным кодом, позволяющая разрабатывать программное обеспечение с использованием различных Интернет протоколов. Днем создания CURL считается 20 марта 1998 года.
Для сборки радиоэлектронного устройства можно преобрески DIY KIT набор по ссылке.
Данная библиотека в первую очередь предназначена для загрузки и скачивания различных типов данных, по указанному URL-адресу. CURL означает С – client, URL – url-адресс.
Целью проекта CURL является создание и развитие двух продуктов:
— Curl, как инструмент командной стоки;
— libcurl, как библиотека API для языка программирования С.
Эти продукты используются для множества приложений, работающих с Интернетом, а также для тестирования различных серверов, настройки протоколов и прочее. Библиотека libcurl используется в множестве встроенных устройствах, использующих Интернет для передачи данных: автомобильные системы, телевизоры, проигрыватели, игровые консоли, принтеры, роутеры и так далее. Хотя libcurl написан на языке С, в настоящее время она используется во множестве других языков.
CURL поддерживает множество протоколов, используемых в сети Интернет, которые позволяют передавать данные в одном или обоих направлениях: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS, WSS.
Домашняя страница библиотеки CURL https://curl.se/
Существует два способа установки данной библиотеки в операционную систему Windows:
— MSYS2;
— vcpkg.
В данной статье я буду устанавливать с помощью vcpkg.
Что такое vcpkg и как его установить?
При работе с С++ стандартная библиотека не может удовлетворить потребностей разработчика. Приходится использовать другие библиотеки, специально разработанные под конкретную задачу. Однако их загрузка, установка и управление ими вручную – задача не тривиальная. Для упрощения данных задач были созданы специальные менеджеры проектов, позволяющие упростить работу со сторонними библиотеками.
Одним из наиболее популярных менеджеров пакетов является vcpkg.
vcpkg – это бесплатный менеджер пакетов языков программирования С/С++ для загрузки и управления библиотеками. Данный менеджер поддерживается командой Microsoft C++ и участниками открытого исходного кода.
Чтобы его установить необходимо воспользоваться утилитой командной строки Git, которая представляет собой систему контроля версий
Если она не установлена её необходимо скачать и установить по ссылке https://gitforwindows.org/
Проверить установлена ли git можно запустив терминал Windows (Win + R) и введя команду git version, позволяющая узнать версию git
Либо же просто команду git, которая выводит в консоль справку по использованию параметров команды git
Для установки vcpkg необходимо скачать архив на странице по ссылке https://github.com/microsoft/vcpkg
Нажать на кнопку Code
Нажать Download ZIP.
После скачивания у вас будет zip-архив vcpkg-master.zip, его необходимо распаковать и скопировать желательно на тот диск, где у вас есть запас свободного места, так как в дальнейшем все пакеты библиотек, установленные с помощью vcpkg, будут помещаться в папку vcpkg-master.
В папке vcpkg-master находим пакетный файл bootstrap-vcpkg.bat и запускаем его
Результатом работы данного пакетного файла будет создание требуемого нам исполняемого файла vcpkg.exe, через который и будет происходить вся работа с менеджером пакетов vcpkg
Далее запускаем терминал Windows и переходит в каталог где у нас находится файл vcpkg.exe.
-
- 1. Нажимаем (Win + R) и в строку поиска вводим cmd
-
- 2. Переходим в каталог, в котором расположено приложение vcpkg.exe. Так как у меня оно расположено по пути E:\Projects\vcpkg-master, то вначале необходимо сменить диск. Для этого вводим в терминале букву диска с двоеточием и нажимаем клавишу Enter
после чего переходим в требуемый каталог с помощью команды cd ./Projects/vcpkg-master
-
- 3. Для проверки правильности установки менеджера пакетов можно ввести команду vcpkg
Если у Вас терминал вывел такую подсказку значит vcpkg установлен правильно.
Установка CURL.
Для установки CURL необходимо ввести команду vcpkg install curl, находясь в папке где находится приложение vcpkg.exe
После чего запустится процесс скачивания необходимых файлов библиотеки CURL. Кроме этих файлов будут скачаны и установлены некоторые другие пакеты, необходимые для работы CURL.
Рассмотрим, что же vcpkg скачал:
-
- 1. В папке downloads находятся те файлы, которые были скачаны (у Вас может быть другой набор)
-
- 2. В папке installed находятся непосредственно файлы библиотеки, которые были собраны самим vcpkg для моей операционной системы
-
- 3. Необходимо произвести интеграцию vcpkg и Visual Studio 2019, чтобы не было необходимости постоянно изменять настройки проекта, прописывая пути к заголовочным файлам и статическим библиотекам. Для этого в терминале необходимо выполнить команду vcpkg integrate install
-
- 4. Необходимо создать новую переменную среды и добавить в неё в качестве параметра путь к папке E:\Projects\vcpkg-master\installed\x64-windows\bin содержащей динамические библиотеки. Для этого идём в Свойства системы и выбираем Переменные среды…
Выбираем системную переменную с именем Path и изменяем её
Изменяется переменная достаточно просто: нажимаем кнопку Создать и в появившуюся стоку вписываем путь к папке с динамическими библиотеками. В моём случае это путь E:\Projects\vcpkg-master\installed\x64-windows\bin
Для проверки правильности подключения vcpkg и библиотеки CURL к среде разработки запустим Visual Studio 2019. Можно создать проект консольного приложения и скомпилировать данный листинг
#include <iostream> #include <string> #include <curl/curl.h> static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp) { ((std::string*)userp)->append((char*)contents, size * nmemb); return size * nmemb; } int main(void) { CURL* curl; CURLcode res; std::string readBuffer; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer); res = curl_easy_perform(curl); curl_easy_cleanup(curl); std::cout << readBuffer << std::endl; } return 0; }
Теория это хорошо, но необходимо отрабатывать это всё практически ПОПРОБОВАТЬ МОЖНО ЗДЕСЬ