2015-05-17 1 views
5

Так что я пришел с cURL как очень хорошая библиотека и отлично работал в OSX. Но теперь у окон у меня большие проблемы с подготовкой к этой библиотеке. Я googled сейчас около 2 дней и попробовал более дюжины (подробно) различных способов, чтобы получить это готово. Без всякого успеха.cURL с Visual Studio 2013

Вот несколько способов, которыми я в основном пытался:

  1. Прямые Скачать: Проблема здесь уже начинается с правой загрузкой. Официальная страница загрузки довольно запутанна, поэтому я рассмотрел этот «cURL Download Wizard»> «libcurl development», который дает мне версию, которую я должен включить в любой проект. Но как именно включить его? В ЛЮБЫХ инструкциях там приводит меня к каталогам, которые я даже не имею. Почти всегда упоминается этот «curllib.lib». Я загрузил около 6 различных версий на эту страницу загрузки, ни в одном из них нет этого файла. (См., Например, инструкцию this)
  2. Git + CMake: В качестве решения на уровне ссылки предлагается использовать git clone на этом. Я выполнил все инструкции, а также получил проекты, созданные с помощью только предупреждений. Но здесь он также говорит:
    После того, как вы установили цель установки, вы найдете папки bin/include/lib в C: \ curl.vc12
    Ну, я действительно не получил его точку «build install target», i просто создайте всю карту проекта по мере ее появления. Компилирует штраф (115 удаленных, 0 не удалось, 2 пропущенных). Но теперь C: \ curl.vc12 не существует. Что мне нужно предварительно настроить перед компиляцией?
  3. NuGet: Идея исходит из ссылки в пункте (1) снова, другое решение с NuGet.
    С Successfully added 'curl 7.30.0.2' to test. это тоже показалось приятным, но компиляция simple.c приводит к кучке unresolved external symbol ошибок компоновщика. Но предоставляется решение:
    Убедитесь, что каталог include и каталог lib указаны в каталогах Visual C++ в свойствах проекта.
    Так в Project > Properties > VC++ Properties > "Include Directories" и
    Project > Properties > VC++ Properties > "Library Directories"
    , а также в Project > C/C++ > General > "Additional Include Directories" и в Project > Linker > General > "Additional Library Directories" я отчаянно добавил \ Packages \ путь из моей папки проекта.
    Как указано в инструкциях, я добавил libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib; в Project > Linker > Input > "Additional Dependencies".
    Все, что сделано, ошибки unresolved external symbol исчезли! Поэтому я получаю только одну ошибку: cannot open file 'libcurl.lib'. Что я могу сделать здесь?

Я довольно новичок во всем этом. Но я сейчас очень стараюсь сделать это, наконец, работать. Так что я могу сделать?
Я работаю с Visual Studio 2013 Community Edition. В настоящее время самая последняя версия cURL - 7.42.1. Любая помощь приветствуется!

+1

Вы видели [это] (http://stackoverflow.com/questions/20171165/)? – uesp

+0

Загляните в мой вопрос еще раз. (Синяя ссылка) (= – beshtaa

ответ

10

У меня возникли проблемы, и, наконец, он теперь работает. Я скачал curl-7.42.1.zip от official website. В архиве вы найдете исходный код и winbuild/BUILD.WINDOWS.txt, в котором в основном содержатся инструкции, которые я выполнил. Я предполагаю, что он был распакован на C: \ curl-7.42.1.

Открыть Visual Studio command prompt расположен в

C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Ярлыки

Это автоматически устанавливает переменные окружения, необходимые для использования Визуальное Инструменты Studio, такие как компилятор. Затем перейдите в каталог winbuild и вызовите

Nmake/ф режим Makefile.vc = длл

, как описано в текстовом файле я уже упоминал выше.

Это создаст каталог

C: \ завиток-7.42.1 \ строит \ Libcurl-VC-x86-релиз-длл-ipv6-ССПИ-winssl

, содержащий Libcurl. dll, libcurl.lib и необходимые файлы заголовков. Переименуем его в C:\curl-7.42.1\builds\release: 'D

  1. Тогда откройте свой проект.
  2. Откройте свойства вашего проекта.
  3. Убедитесь, что вы выбрали Выпуск как конфигурация (левый верхний угол)!
  4. Перейдите к VC++ Directories > Include directories и добавить C:\curl-7.42.1\builds\release\include
  5. Добавить C:\curl-7.42.1\builds\release\lib в VC++ Directories > Library directories.
  6. Перейдите на страницу Linker > Input > Additional Dependencies и добавьте libcurl.lib.
  7. И наконец, скопируйте C:\curl-7.42.1\builds\release\bin\libcurl.dll в папку с вашим проектом.

Это должно сделать трюк! : D Если вы хотите использовать cURL в режиме отладки, вы можете сделать почти то же самое, перекомпилировать с помощью nmake /f Makefile.vc mode=dll debug=yes, перейти к свойствам вашего проекта, добавить вновь созданные пути к каталогам (смена libcurl.lib на libcurl_debug.lib), и вам нужно сделать это ,

+0

Спасибо за быстрый ответ, я постараюсь скоро! – beshtaa

+1

С слезами на глазах и чашкой кофе в руке я могу продолжать, потому что вы сэр сделали мой день. (: Спасибо очень важно! Редактировать: Пожалуйста, измените * Makefile.vs * на * Makefile.vc * – beshtaa

+0

Приятно слышать, пожалуйста! :) Отредактировано мое сообщение, как вы указали. – Jeinzi

0

У меня была та же проблема. Я загрузил завиток из https://github.com/curl/curl. вы можете скомпилировать его непосредственно с Visual Studio 2013 (но будьте осторожны с настройками параметров: x64 с выпуском). Главное отличие в том, что он дает вам libcurl_imp.lib. Тогда все, что вам нужно сделать, это установить переменные среды, как описано выше. Просто хочу упомянуть, вам придется использовать libcurl_imp.lib, а не libcurl.lib в дополнительных зависимостях (я подозреваю, что это изменение связано с новой версией curl).