2014-02-01 1 views
2

Первый таймер здесь, поэтому мне может понадобиться бит ручного удержания.Использование libcurl из NuGet в C++ (VS2013)

Я пытался просто использовать простые примеры libcurl, но при компиляции сработал. Я пытаюсь использовать NuGet и последовал за то, что я прочитал в this previous answer

В свойствах проекта я связан дополнительных каталогов Library в папку с libcurl.dll в и в Linker-> Input I» ve .lib указан там в этом предыдущем ответе. Когда я пытаюсь запустить его, он дает сообщение об ошибке .libs.

1>LINK : fatal error LNK1104: cannot open file 'libeay32.lib' Я думаю, это не удивительно, потому что .lib на самом деле не находятся в папке. При удалении ссылок на .lib, кроме libcurl.lib, потому что он есть, я получаю эту ошибку.

1>Source.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function _main 
1>Source.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function _main 
1>Source.obj : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function _main 
1>Source.obj : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function _main 
+0

Благодаря тому, что указал ruvenb, я добавил эти .libs, но все равно получаю ошибки. – rwllr

ответ

4

пакет OpenSSL NuGet в настоящее время от 12 июня 2013 г. Файлы задания для обоих openssl.1.0.1.24 и openssl.redist.1.0.1.24 содержат следующее условие:

$(PlatformToolset.ToLower().IndexOf('v110')) > -1 

Эти исключающие компиляции и компоновки, потому что VS2013 устанавливает PlatformToolset = v120 по умолчанию. Цели должны быть обновлены для v120 (и для CTP_Nov2013).

Подробнее here о совместимости между RTM и CTP-компиляторами.

+0

У меня тоже есть эта проблема - как вы это переопределяете (вы указываете, что «цели должны быть обновлены») – Edge

+0

Это можно сделать между совместимыми компиляторами (например, v120 и CPT_Nov2013), но не между v110 и v120/CPT_Nov2013. Я закончил создание OpenSSL и опубликовал свои пакеты NuGet. См. Https://www.nuget.org/packages?q=evoskuil Но я вообще сбросил cURL. – evoskuil

-1

Это функции OpenSSL, которые используются завитой. Странно, что система управления пакетами, такая как nuget, не имеет автоматического отслеживания зависимостей. В любом случае, установка OpenSSL таким же образом, как вы установили curl, должна решить вашу проблему.

+0

Спасибо, что указали это мне. NuGet также загружает другие пакеты, поэтому мне пришлось добавлять их также в свойства проекта. Тем не менее, по-прежнему такая же ошибка. – rwllr