让LibCurl与Visual Studio 2013一起使用

Qua*_*ale 50 c++ dll libcurl visual-c++

我无法使LibCurl与Visual Studio 2013一起工作.我下载了当前版本(curl-7.33.0)并尝试按照我在此站点上找到的说明操作:在Visual 2010中使用LibCurl

但我在我下载的文件夹中找不到curllib.lib.我仍然得到错误: 在此输入图像描述

在互联网上搜索更多帮助.我现在收到这些错误消息.链接到libcurl.lib似乎有问题?

在此输入图像描述

这是我配置的: 在此输入图像描述


在此输入图像描述

在/ lib我有libcurl.liblibcurl.dll


UPDATE

我为Win32 MSVC下载了此版本:http://curl.haxx.se/download.html#Win32 添加libcurl库并成功编译后,我现在收到此错误消息:

 The application was unable to start correctly (0xc000007b). Click OK to close the application.
Run Code Online (Sandbox Code Playgroud)

这是我尝试运行的示例代码:

#include <iostream>
#include <stdio.h> 
#include <curl/curl.h> 


int main(void)
{
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
        res = curl_easy_perform(curl);

        /* always cleanup */
        curl_easy_cleanup(curl);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

最终更新

我相信我已经让LibCurl与Visual Studio 2013合作了.坚持不懈!虽然花了好几个小时试图解决这些错误信息后,我有点犹豫,说现在一切正常.这就是为什么我要对这个问题给予一个赏金,以获得有关让LibCurl与Visual Studio 2013一起使用的简明扼要的说明.

这就是我为了让它发挥作用所做的事情:

  1. 首先,在这里下载Win32 MSVC软件包:http ://curl.haxx.se/download.html#Win32为了这些说明,让我们说你下载到C:\ LibCurl

  2. 在Visual Studio中启动一个新项目.转到项目|项目属性| VC++目录|包含目录| 将路径添加到下载的包中的include目录.(C:\ libcurl中\包括)

  3. 接下来,转到项目|项目属性|链接器|常规|其他库目录| 将路径添加到lib目录.(curllib.dll所在的位置)

  4. 然后,转到Project | Project Properties | Linker | Input | Additional Dependencies | 并添加curllib.lib

  5. 现在,如果您编译测试程序,您可能会收到消息说libsasl.dll缺失.您需要下载此文件并将其放在与构建相同的目录中.我使用7-Zip 从OpenLDAP for Windows中提取libsasl.dll.OpenLDAP for Windows

这是我上面的测试代码的结果: 在此输入图像描述

mtl*_*nch 70

很多这些说明已经过时了,因为他们推荐使用win32-ssl-devel-msvc软件包,它不再存在.

以下说明允许您使用以下内容构建libcurl :

  • Visual Studio 2013
  • curl generic source tarball(在curl 7.44.0上测试).

A.构建libcurl静态库

  1. http://curl.haxx.se/latest.cgi?curl=tar.gz下载最新的curl 通用源代码
  2. 将源提取到本地目录(我们将使用C:\libcurl)
  3. 打开命令提示符
  4. "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat" 初始化VC环境变量(根据需要调整VS 2013安装目录)
  5. cd C:\libcurl\winbuild
  6. nmake /f Makefile.vc mode=static VC=12
  7. 构建应该出现在 C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl

B.在Visual Studio中链接libcurl

  1. 在Visual Studio中,右键单击解决方案资源管理器中的项目,然后单击"属性"
  2. 配置属性> C/C++>常规>其他包含目录:添加 C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include
  3. 配置属性> C/C++>预处理器>预处理器定义:add CURL_STATICLIB
  4. 配置属性>链接器>常规>其他库目录:添加 C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib
  5. 配置属性>链接器>输入>附加依赖项:添加 libcurl_a.lib

C.从您的项目中调用libcurl

以下示例显示了对libcurl的调用:

#include "stdafx.h"

#include <curl/curl.h>

void main(int argc, char* argv[])
{
    CURL *curl = curl_easy_init();
    if (curl) printf("curl_easy_init() succeeded!\n"); 
    else fprintf(stderr, "Error calling curl_easy_init().\n");
}
Run Code Online (Sandbox Code Playgroud)

  • @programmer要为x64架构构建这个,你需要按照说明打开一个命令提示符,在步骤4中,执行`C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\bin中的`vcvars64.bat`\amd64`(或等效的).在步骤6中,您需要指定您的目标是x64,如下所示:`nmake/f Makefile.vc mode = static VC = 12 MACHINE = x64`.最后,如果您已经使用错误的(32位)工具意外构建了x64架构,请进入libcurl文件夹中的`/ builds`文件夹,并删除用x64表示的文件夹 (5认同)
  • 终于让它为2015年的视觉工作室工作...谢谢你我真的爱你:) (4认同)

Mic*_*hał 12

我会在评论中说,但我缺乏积分.您不必将任何.dll复制到程序运行目录中.转到项目| 属性| 配置属性和在线Envrionment写:PATH=$(ExecutablePath)$(LocalDebuggerEnvironment).

从现在开始,您在项目|项目属性| VC++目录|二进制文件中提及的任何目录中的所有.dll都应该可以使用而无需复制它们.

其余的与你所写的完全一样.


Joh*_*ela 12

我找到的最简单的方法是首先确保安装了nuget.

http://www.nuget.org/

然后创建您的项目.

然后转到http://www.nuget.org/packages/curl/并按照包管理器控制台的说明进行操作并输入PM> Install-Package curl

然后,如果您在项目目录中查找packages目录,则会找到包含文件和库文件.请注意,Visual Studio 110有一个版本,而不是120,但由于libcurl是一个C库,因此可以将它与Visual Studio 2013一起使用.确保在项目属性中的Visual C++目录下指定了include目录和lib目录.

确保将以下文件作为链接器的附加输入 libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib;

  • 以上软件包适用于VS 2010.它与VS 2015不兼容(VS 2015使用工具集v140,该软件包仅支持v110和v120).对于VS 2015,请改用rmt_curl(https://www.nuget.org/packages/rmt_curl) (6认同)

Ser*_*lov 10

另一种使用curl/libcurl的方法是使用CMake v2.8.12 + 构建(假设你的计算机上已经安装了git)

打开cmd窗口并将dir更改为适当的文件夹

git clone https://github.com/bagder/curl.git
mkdir msbuild
cd msbuild
cmake ..\curl -G"Visual Studio 12 Win64" -DCMAKE_INSTALL_PREFIX=C:\curl.vc12 -DCURL_STATICLIB=ON
< ... lots of output here ... >
Run Code Online (Sandbox Code Playgroud)

在Visual Studio中打开生成的CURL.sln并构建它.

我在示例中使用的CMake选项

-G选择构建生成器.在我们的案例中,Visual Studio 2013 64位目标

-DCMAKE_INSTALL_PREFIX - 提供应安装目标的根文件夹

-DCURL_STATICLIB = ON - 为静态库生成构建

构建安装目标后,您将在C:\ curl.vc12中找到bin/include/lib文件夹

提供解决方案的路径并使用curl lib构建代码.


Nil*_*Nil 5

我试图从头开始使用VS2012(我没有2013),它完美无缺.

所以,我不确定你的问题是什么,但是:

  • 确保下载正确的存档.
  • 尝试将cURL文件夹放在没有空格的路径上.
  • 如果您认识使用VS2012或更早版本的人,请使用相同的include和lib尝试您的代码,看看它是否有效.
  • 粘贴代码的最小工作示例,以便我可以测试它.