c++ - curl 与 Visual Studio 2013

标签 c++ curl visual-studio-2013 nuget libcurl

所以我发现 cURL 是一个非常好的库,并且在 OSX 中工作得很好。 但是现在在 Windows 上,我在准备这个库时遇到了很大的麻烦。我现在用谷歌搜索了大约 2 天,并尝试了十几种(详细)不同的方法来准备好它。没有任何成功。

以下是我基本上尝试过的一些方法:

  1. 直接下载:这里的问题已经从正确的下载开始了。官方下载页面非常困惑,所以我考虑了这个“cURL 下载向导”>“libcurl 开发”,它给了我一个版本,我应该能够将它包含到任何项目中。但究竟如何包含它呢?在任何说明中,它都会引导我进入我什至没有的目录。几乎总是提到这个“curllib.lib”。我在该下载页面上下载了大约 6 个不同的版本,其中没有一个有这个文件。 (参见示例 this 说明)
  2. Git + CMake:作为上述链接的解决方案,建议对此使用 git clone。我在那里完成了所有说明,并且还生成了仅带有警告的项目。但这里也说:
    构建安装目标后,您会在 C:\curl.vc12 中找到 bin/include/lib 文件夹
    好吧,我并没有真正理解他“构建安装目标”的观点,我只是构建整个项目 map 。编译正常(115 次成功,0 次失败,2 次跳过)。但是现在 C:\curl.vc12 不存在了。在编译之前我必须预先设置什么?
  3. NuGet:思路又来自第(1)点的链接,与NuGet不同的解决方案。
    随着 成功添加 'curl 7.30.0.2' 进行测试。 它看起来也不错,但是编译 simple.c 会导致一堆 unresolved external symbol 链接器错误。但是提供了一个解决方案:
    确保在项目属性中的 Visual C++ 目录下指定了 include 目录和 lib 目录。
    所以在 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 > 输入 > “附加依赖项”
    所有这些都完成了,unresolved external symbol 错误消失了!因此,我只收到一个错误,提示 cannot open file 'libcurl.lib'。我可以在这里做什么?

我对这一切都很陌生。但我现在非常努力地让这个最终起作用。那我该怎么办?
我使用 Visual Studio 2013 Community Edition。当前最新版本的 cURL 是 7.42.1。 非常欢迎任何帮助!

最佳答案

我自己遇到了问题,现在终于可以使用了。 我从 official website 下载了 curl-7.42.1.zip . 在存档中,您将找到源代码和 winbuild/BUILD.WINDOWS.txt,其中基本上包含我遵循的说明。我假设它已解压缩到 C:\curl-7.42.1。

打开 Visual Studio command prompt位于

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts

这会自动设置使用 Visual Studio 工具(如编译器)所需的环境变量。然后移动到winbuild目录调用

nmake /f Makefile.vc mode=dll

如我上面提到的文本文件中所述。

这将创建目录

C:\curl-7.42.1\builds\libcurl-vc-x86-release-dll-ipv6-sspi-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++ 目录 > 库目录
  6. 转到 Linker > Input > Additional Dependencies 并添加 libcurl.lib
  7. 最后将 C:\curl-7.42.1\builds\release\bin\libcurl.dll 复制到您的项目文件夹。

这应该可以解决问题! :D 如果你想在 Debug模式下使用 cURL,你可以做几乎相同的事情,使用 nmake/f Makefile.vc mode=dll debug=yes 重新编译,转到项目的属性,添加新的创建了目录路径(将 libcurl.lib 更改为 libcurl_debug.lib),您应该完成了。

关于c++ - curl 与 Visual Studio 2013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288415/

相关文章:

c++ - 仅选择 MySQL 数据库/表中的更新/新行

php - fopen() : SSL: Connection reset by peer error in php

php - CURL FTP 连接仅在主机上被拒绝

C++ 预编译头文件和包含文件组织

c++ - "Use of undeclared identifier"- 代码有什么问题?

c++ - 使用 const int 作为数组大小

vb.net - 从 Windows 窗体应用程序运行 sql 脚本

javascript - 如何使用 Visual Studio 2013 和 Node Tools NTVS 调试 node.js 应用程序

c++ - 实现观察者模式 C++

java - HTTP CURL 有效 - Java Jsoup 无效