Получение cURL для работы с Visual Studios 2017

* Изменить: я получил CURL, работающий в VS 2017 на 64-битной машине, выполнив следующие действия (оригинальная проблема приведена ниже):

Сначала установите vcpkg:

  1. Клонируйте vcpkg, используя gitbash, в C:\Program Files
  2. В командной строке перейдите к C:\Program Files\vcpkg
  3. Запустите в командной строке: .\ Bootstrap-vcpkg.bat
  4. Запустите в командной строке: vcpkg integrate install

Затем используйте vcpkg и командную строку Visual Studios 2017 для установки cURL:

  1. Откройте командную строку VS 2017 и перейдите в папку vcpkg (где находится vcpkg.exe)
  2. Бежать: vcpkg install curl:x64-windows (обратите внимание, что загрузка и запуск могут занять около получаса, не беспокойтесь, если кажется, что он "застрял" в деталях)
  3. После этого шага вы должны убедиться, что скручивание установлено правильно. Для этого вы должны создать новый проект в VS 2017 и попытаться включить #include curl/curl.h без добавления каких-либо дополнительных каталогов. Если вы не можете этого сделать, значит, что-то пошло не так с вашей установкой curl. Вы должны удалить curl (и, возможно, даже папку vcpkg и выполнить чистую установку), пока не сможете включить curl/curl.h,

* Изменить: это будет работать, только если вы используете отладчик / компилятор x64 в x64! Если вы не можете включить проверку каталога curl, чтобы убедиться, что для вашей отладки установлена ​​правильная версия Windows.

Вам также может потребоваться отключить проверку SSL-пиров:

  1. Поместите код curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE); до запроса (см. ниже). Обратите внимание, что это необходимо только потому, что я не мог понять, как получить сертификаты для работы с curl. У меня есть еще не отвеченный пост stackru относительно этой проблемы здесь.

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

  1. Перейдите в vcpkg\packages\curl_x64-windows\lib, чтобы найти файл libcurl.lib.
  2. Включите путь к libcurl.lib в каталогах дополнительных библиотек в разделе "Свойства" -> "Линкер".
  3. Включен libcurl.lib в Дополнительные зависимости под компоновщиком -> Ввод -> Дополнительные зависимости
  4. Место CURL_STATICLIB в Свойствах -> C/C++ -> Препроцессор -> Определения препроцессора

Вот мой теперь работающий код:

#include "curl/curl.h"


void testCurl() {
    CURL *curl;
    CURLcode res; 

    curl_global_init(CURL_GLOBAL_ALL); 

    curl = curl_easy_init();
    if (curl) {
      curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");

    #ifdef SKIP_PEER_VERIFICATION
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
    #endif

    #ifdef SKIP_HOSTNAME_VERIFICATION
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
    #endif

    res = curl_easy_perform(curl);

   if (res != CURLE_OK)
       fprintf(stderr, "curl_easy_perform() failed: %s\n",
       curl_easy_strerror(res));

       curl_easy_cleanup(curl);
 }
 curl_global_cleanup();
}

int main(){
    testCurl();
    return 0;
}

* Изменить: Вот остальная часть объяснения моей старой проблемы, прежде чем она была решена:

Я пытаюсь использовать cURL для вызова API, чтобы я мог начать получать данные о запасах в реальном времени, но у меня возникают трудности с его использованием в VS 2017. Я попытался выполнить установку с использованием vcpckg, выполнив следующие шаги:

Согласно документации vcpkg, я теперь могу просто #include, но он не может найти папку. Если я попытаюсь включить каталог "include" из vcpkg\packages\curl_x86\include и #include, я смогу построить свой проект. Я также могу получить доступ к некоторым классам, но если я попытаюсь установить curl_global_init(CURL_GLOBAL_DEFAULT), как в этом примере, я получаю ошибки компоновщика.

Ошибка компоновщика ошибка curl_global_init

2 ответа

Решение

Вы установили версию curl для x86 с помощью vcpkg (это x86 в vcpkg\packages\curl_x86\include). Вам необходимо установить версию x64, соответствующую вашему проекту:

>vcpkg install curl:x64-windows

Здесь, в 2021 году, в Windows 10, используя текущую Visual Studio. vcpkg install curl[*]:x64-windowsне работает. Я получаю ошибку BUILD_FAILED. vcpkg install curl действительно работает для меня и занимает всего ~30 секунд

Другие вопросы по тегам