所以我发现 cURL 是一个非常好的库,并且在 OSX 中工作得很好。 但是现在在 Windows 上,我在准备这个库时遇到了很大的麻烦。我现在用谷歌搜索了大约 2 天,并尝试了十几种(详细)不同的方法来准备好它。没有任何成功。
以下是我基本上尝试过的一些方法:
- 直接下载:这里的问题已经从正确的下载开始了。官方下载页面非常困惑,所以我考虑了这个“cURL 下载向导”>“libcurl 开发”,它给了我一个版本,我应该能够将它包含到任何项目中。但究竟如何包含它呢?在任何说明中,它都会引导我进入我什至没有的目录。几乎总是提到这个“curllib.lib”。我在该下载页面上下载了大约 6 个不同的版本,其中没有一个有这个文件。 (参见示例 this 说明)
- Git + CMake:作为上述链接的解决方案,建议对此使用 git clone。我在那里完成了所有说明,并且还生成了仅带有警告的项目。但这里也说:
构建安装目标后,您会在 C:\curl.vc12 中找到 bin/include/lib 文件夹
好吧,我并没有真正理解他“构建安装目标”的观点,我只是构建整个项目 map 。编译正常(115 次成功,0 次失败,2 次跳过)。但是现在 C:\curl.vc12 不存在了。在编译之前我必须预先设置什么?
- 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
- 然后打开您的项目。
- 打开项目的属性。
- 确保选择发布作为配置(左上角)!
- 导航到
VC++ Directories > Include directories
并添加C:\curl-7.42.1\builds\release\include
- 将
C:\curl-7.42.1\builds\release\lib
添加到VC++ 目录 > 库目录
。 - 转到
Linker > Input > Additional Dependencies
并添加libcurl.lib
。 - 最后将
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/