Получение 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]()
Ответы
Ответ 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 в ту же папку с исполняемым файлом.
Он должен работать.
Ответ 10
Спасибо за подробное руководство!
Я видел, что последняя версия сборки msvc libcurl не была доступна на официальном сайте. Итак, библиотека, которую я нашел в Интернете, находится по ссылке ниже.
https://osdn.net/projects/sfnet_jcurltools/downloads/depending/libcurl-7.19.3-win32-ssl-msvc.7z/
Ответ 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
, чтобы найти скомпилированные файлы.
Все самое лучшее!