Получение 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 Command prompt и перейдите в папку vcpkg (где vcpkg.exe является)
  2. Бежать: vcpkg install curl[*]:x64-windows (обратите внимание, что загрузка и запуск могут занять около получаса, не беспокойтесь, если кажется, что он «застрял» в деталях). * Редактировать: ранее мои инструкции говорили о запуске vcpkg install curl:x64-windows но я добавил на [*] по просьбе @ i7clock для включения протоколов sftp и scp.
  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. У меня есть еще не отвеченный пост stackoverflow по этой проблеме Вот.

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

  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

6

Решение

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

>vcpkg install curl:x64-windows

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]