Подтвердить что ты не робот

Получение LibCurl для работы с Visual Studio 2013

У меня возникли проблемы с тем, чтобы LibCurl работал с Visual Studio 2013. Я загрузил текущую версию (curl-7.33.0) и попытался выполнить инструкции, которые я нашел на этом сайте: Использование LibCurl с Visual 2010

Но я не могу найти curllib.lib в загруженной папке. И я все еще получаю ошибки: enter image description here

После поиска в Интернете для получения дополнительной помощи. Теперь я получаю эти сообщения об ошибках. Кажется, что проблема связана с libcurl.lib?

enter image description here

Это то, что я настроил: enter image description here


enter image description here

Внутри/lib у меня есть libcurl.lib и libcurl.dll


UPDATE

Я загрузил этот выпуск для Win32 MSVC: http://curl.haxx.se/download.html#Win32 После добавления библиотек libcurl и успешной компиляции я получаю следующее сообщение об ошибке:

 The application was unable to start correctly (0xc000007b). Click OK to close the application.

Вот пример кода, который я пытаюсь запустить:

#include <iostream>
#include <stdio.h> 
#include <curl/curl.h> 


int main(void)
{
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
        res = curl_easy_perform(curl);

        /* always cleanup */
        curl_easy_cleanup(curl);
    }
    return 0;
}

ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ

Я считаю, что теперь LibCurl теперь работает с Visual Studio 2013. Стойкость ftw! Хотя, проведя часы, пытаясь решить эти сообщения об ошибках, я немного нерешительно говорю, что сейчас все работает нормально. Вот почему я ставил щедрость на этот вопрос, чтобы получить четкие и краткие инструкции о том, как LibCurl будет работать с Visual Studio 2013.

Это то, что я сделал, чтобы заставить его работать:

  • Сначала загрузите пакет Win32 MSVC здесь: http://curl.haxx.se/download.html#Win32 Для этих инструкций, скажем, вы загрузились в C:\LibCurl

  • Запустите новый проект в Visual Studio. Перейти к Project | Свойства проекта | VС++ Каталоги | Включить каталоги | Добавьте путь к каталогу include внутри загруженного пакета. (C:\Libcurl\включают в себя)

  • Затем перейдите в Project | Project Properties | Linker | General | Дополнительные библиотечные каталоги | Добавьте путь к каталогу lib. (Там, где находится curllib.dll)

  • Затем перейдите к Project | Project Properties | Linker | Input | Additional Dependencies | И добавьте curllib.lib

  • Теперь, если вы скомпилируете тестовую программу, вы, скорее всего, получите сообщение о том, что libsasl.dll отсутствует. Вам нужно будет загрузить этот файл и поместить его в тот же каталог, что и ваша сборка. Я использовал 7-Zip для извлечения libsasl.dll из OpenLDAP для Windows. OpenLDAP для Windows

Это результат моего тестового кода сверху: enter image description here

4b9b3361

Ответ 1

Я бы сказал, что в комментарии, но мне не хватает очков. Вам не нужно копировать любые DLL файлы в каталог запуска программы. Перейдите в Проект | Недвижимость | Свойства конфигурации и в строке Envrionment пишите: PATH=$(ExecutablePath)$(LocalDebuggerEnvironment).

С этого момента все DLL файлы из любого каталога, упоминаемого в Project | Project Properties | VС++ Directories | Binary, должны использоваться без копирования.

Остальное точно так же, как вы написали.

Ответ 2

Многие из этих инструкций устарели, потому что они рекомендуют пакет win32-ssl-devel-msvc для завивки, , который больше не существует.

Следующие инструкции позволяют создавать libcurl с помощью только:

  • Visual Studio 2013
  • curl generic tarball (проверен на curl 7.44.0).

A. Создание библиотеки libcurl static

  • Загрузите последний ролик общий из http://curl.haxx.se/latest.cgi?curl=tar.gz
  • Извлеките источник в локальный каталог (мы будем использовать C:\libcurl)
  • Откройте командную строку
  • "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat" Чтобы инициализировать переменные среды VC (при необходимости настройте каталог установки VS 2013)
  • cd C:\libcurl\winbuild
  • nmake /f Makefile.vc mode=static VC=12
  • Строка должна появиться в C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl

В. Ссылка на libcurl в Visual Studio

  • В Visual Studio щелкните правой кнопкой мыши ваш проект в обозревателе решений, затем нажмите "Свойства"
  • Свойства конфигурации > C/С++ > Общие > Дополнительные каталоги Include: add C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include
  • Свойства конфигурации > C/С++ > Препроцессоp > Определения препроцессора: add CURL_STATICLIB
  • Свойства конфигурации > Коннектоp > Общие > Дополнительные каталоги библиотеки: добавьте C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib
  • Свойства конфигурации > Коннектоp > Ввод > Дополнительные зависимости: добавьте libcurl_a.lib

С. Вызов libcurl из вашего проекта

В следующем примере показан вызов libcurl:

#include "stdafx.h"

#include <curl/curl.h>

void main(int argc, char* argv[])
{
    CURL *curl = curl_easy_init();
    if (curl) printf("curl_easy_init() succeeded!\n"); 
    else fprintf(stderr, "Error calling curl_easy_init().\n");
}

Ответ 3

Самый простой способ сделать это, который я нашел, - сначала убедиться, что nuget установлен.

http://www.nuget.org/

Затем создайте свой проект.

Затем перейдите в http://www.nuget.org/packages/curl/ и следуйте инструкциям, которые должны появиться в консоли диспетчера пакетов, и введите PM> Install-Package curl

Если вы затем посмотрите каталог пакетов в каталоге проекта, вы найдете файлы include и файлы библиотеки. Обратите внимание, что существует версия для Visual Studio 110, а не 120, но поскольку libcurl - это библиотека C, которую вы можете использовать с Visual Studio 2013. Убедитесь, что каталог include и lib указан в каталогах Visual С++ в свойствах проекта.

Убедитесь, что у вас есть следующие файлы в качестве дополнения к компоновщику libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib;

Ответ 4

Другой способ использования curl/libcurl заключается в создании CMake v2.8.12 + (при условии, что git уже установлен на вашем компьютер)

Откройте окно cmd и измените каталог в соответствующую папку

git clone https://github.com/bagder/curl.git
mkdir msbuild
cd msbuild
cmake ..\curl -G"Visual Studio 12 Win64" -DCMAKE_INSTALL_PREFIX=C:\curl.vc12 -DCURL_STATICLIB=ON
< ... lots of output here ... >

Откройте созданный CURL.sln в Visual Studio и создайте его.

Параметры CMake, которые я использую в примере

-G выбирает генератор сборки. В нашем случае 64-разрядная цель Visual Studio 2013

-DCMAKE_INSTALL_PREFIX - предоставляет корневую папку, в которой должны быть установлены цели

-DCURL_STATICLIB = ON - генерирует сборку для статической библиотеки

После создания цели установки ваши файлы bin/include/lib будут найдены в C:\curl.vc12

Предоставьте путь к вашему решению и создайте свой код с помощью curl lib.

Ответ 5

Я попытался сделать это с нуля с VS2012 (у меня нет 2013), и он отлично работает.

Итак, я не уверен, в чем проблема, но:

  • Убедитесь, что вы загрузили нужный архив.
  • Попробуйте поместить папку cURL на путь без пробелов.
  • Если вы знаете кого-то, кто использует VS2012 или старше, попробуйте свой код с теми же include и lib и посмотрите, работает ли он.
  • Вставьте минимальный рабочий пример вашего кода, чтобы я мог его протестировать.

Ответ 6

Это немного поздно, но для тех, у кого все еще есть проблемы, этот метод работал лучше всего для меня:

  • Добавить VS в систему PATH:
    Например: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin.
  • Загрузите текущий curl-X.zip из http://curl.haxx.se/download.html и разархивируйте.
  • Откройте командную строку в curl-X/winbuild.
  • Вызов vcvars32.bat.
  • Вызов nmake /f Makefile.vc mode=static VC=12.
  • Перейти к curl-X/builds/libcurl-XXX.

Здесь вы найдете входящие и libcurl_a.lib. Эта библиотека отлично работает для меня.
Не забудьте определить -DCURL_STATICLIB при компиляции кода с помощью этой библиотеки.

Ответ 7

Проблема в том, что цели для стандартных инструментов платформы VS2013 не установлены в пакетах NuGet. Вот почему он работает в VS2012, но не VS2013. Я вручную создал файлы замещающих целей. Инструкции и загрузка:

https://github.com/evoskuil/curl-nuget-targets

Ответ 8

Загрузите исходный код curl v7.37.0 и используйте предоставленные файлы проекта Visual Studio.

Я потратил последние несколько недель на полировку моих личных файлов проектов, которые были основаны на исходных файлах VC6 и добавили их в репозиторий.

.dsw/.dsp(VC6),.sln/.vcproj(VC7, VC7.1, VC8 и VC9, а также файлы .sln/.vcxproj(VC10, VC11 и VC12) предоставляются как для DLL, так и для Static Библиотека построена с поддержкой OpenSSL и Windows SSPI/SChannel в конфигурациях Win32 и x64.

Ответ 9

Я нашел простой способ заставить его работать в VС++, используя последний пакет. Я в основном выполнил шаги в разделе Использование libcurl в Visual Studio. Libcurl и VС++ очень старые в инструкции.

Сначала загрузите ZIP файл на странице загрузки https://curl.haxx.se/download.html Почтовый пакет https://curl.haxx.se/download/curl-7.50.1.zip

Перейдите к проектам- > Windows\VC10 (или вашей версии VC)\lib\libcurl.sln, откройте проект в VС++.

Создайте проект в выпуске DLL. Отладка DLL не работает на моем VС++.

Перейдите к сборке \Win32\VC10\DLL Release, вы можете найти файлы lib и dll, созданные на предыдущем шаге.

Создайте новую папку, включая папки include и lib. Скопируйте libcurb.dll и libcurb.lib все, что находится в папке Release DLL, в новый \lib. Скопируйте все в curl-7.50.1\include в новую папку \include.

Свойства С++ → Свойства конфигурации → Каталоги VС++, добавьте новые \include для включения каталогов, новых \lib в библиотечные каталоги; добавьте новый \lib в Linker → Общие → Дополнительные библиотеки, добавьте libcurl.lib в Linker → Input → Additional Dependencies

Кажется, что я должен поместить файл dll в ту же папку с исполняемым файлом.

Он должен работать.

Ответ 11

Для Visual Studio 2017 для меня работали шаги ссылка. В случае, если ссылка истекает или специально для тех, кто загружает zip файл libcurl вместо клонирования из GitHub, я остановлю здесь шаги.

  • Установите переменные среды с "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64. Если команда выполнена успешно, вы увидите сообщение с сообщением Environment initialized for 'x64'

  • Загрузите и извлеките сжатый файл libcurl из загрузить libcurl. Я использовал файл .zip.

  • cd в каталог winbuild внутри извлеченной папки libcurl.
  • Запустите nmake /f Makefile.vc mode=dll MACHINE=x64 для сборки. Дополнительные сведения о возможностях сборки см. В текстовом файле BUILD.WINDOWS в папке winbuild.
  • Перейдите на один уровень каталога и cd в папку builds, чтобы найти скомпилированные файлы.

Все самое лучшее!