在C ++中使用NuGet中的libcurl(VS2013)

时间:2014-02-01 21:13:56

标签: c++ visual-studio-2013 libcurl

这里的第一个计时器,所以我可能需要一个的手持。

我一直在尝试使用简单的libcurl示例,但在编译时会绊倒。 我正在尝试使用NuGet并按照我在this previous answer

中读到的内容

在项目属性中,我已将其他库目录链接到包含libcurl.dll的文件夹,在 Linker->输入中我列出了.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

2 个答案:

答案 0 :(得分:4)

OpenSSL NuGet程序包目前日期为2013年6月12日。openssl.1.0.1.24openssl.redist.1.0.1.24的目标文件包含以下条件:

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

这会妨碍编译和链接,因为VS2013默认设置PlatformToolset = v120。必须针对v120(以及CTP_Nov2013)更新目标。

有关RTM和CTP编译器之间兼容性的更多here

答案 1 :(得分:-1)

这些是由curl使用的OpenSSL函数。奇怪的是像nuget这样的包管理系统没有自动依赖性跟踪。在任何情况下,以与安装curl相同的方式安装OpenSSL都可以解决您的问题。