c++ 让cURL与Visual Studios 2017一起工作

i2byvkas  于 2023-06-07  发布在  iOS
关注(0)|答案(2)|浏览(277)
  • 编辑:我让CURL在64位机器上运行VS 2017,遵循以下步骤(原始问题见下文):

首先安装vcpkg:
1.使用gitbash将vcpkg克隆到C:\Program Files
1.在命令提示符下导航到C:\Program Files\vcpkg
1.在命令提示符下运行:.\bootstrap-vcpkg.bat
1.在命令提示符下运行:vcpkg integrate install
然后使用vcpkg和Visual Studios 2017命令提示符安装cURL:
1.打开VS 2017 Command prompt并导航到vcpkg文件夹(vcpkg.exe所在的位置)
1.运行:vcpkg install curl[*]:x64-windows(注意,下载和运行这个程序可能需要大约半个小时,如果它看起来像是“卡住”了,也不用担心)。

  • 编辑:以前我的指令说运行vcpkg install curl:x64-windows,但我在@i7clock的要求下添加了[*]以启用sftp和scp协议。

1.完成此步骤后,您应该检查以确保curl安装正确。为此,您应该在VS 2017中创建一个新项目,并尝试包含#include curl/curl.h,而不添加任何其他包含目录。如果你不能做到这一点,那么你的curl安装就出了问题。您应该删除curl(甚至可能删除vcpkg文件夹,然后进行全新安装),直到可以包含curl/curl.h

*重要提示:这将只工作,如果你是使用x64调试器/编译在x64!如果不能包含curl目录,请检查以确保调试设置为正确的Windows版本。

您可能还需要禁用SSL对等验证:
1.将代码curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);放在请求之前(见下文)。注意,这只是必要的,因为我不知道如何获得证书来使用curl。我有一个关于这个问题的尚未回答的stackoverflow帖子here
这里有一些其他的步骤,你可能需要尝试让事情运行,但我最终发现他们没有必要:
1.导航到vcpkg\packages\curl_x64-windows\lib以查找libcurl.lib文件。
1.在Properties -> Linker下的Additional LibraryDirectories中包含libcurl.lib的路径
1.在Linker -> Input -> Additional Dependencies下的Additional Dependencies中包含libcurl.lib
1.将CURL_STATICLIB放在Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions中
下面是我现在的工作代码:

#include "curl/curl.h"

void testCurl() {
    CURL *curl;
    CURLcode res; 

    curl_global_init(CURL_GLOBAL_ALL); 

    curl = curl_easy_init();
    if (curl) {
      curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");

    #ifdef SKIP_PEER_VERIFICATION
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
    #endif

    #ifdef SKIP_HOSTNAME_VERIFICATION
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
    #endif

    res = curl_easy_perform(curl);

   if (res != CURLE_OK)
       fprintf(stderr, "curl_easy_perform() failed: %s\n",
       curl_easy_strerror(res));

       curl_easy_cleanup(curl);
 }
 curl_global_cleanup();
}

int main(){
    testCurl();
    return 0;
}
  • 编辑:以下是我的旧问题在修复之前的其余解释:

我试图使用cURL进行API调用,这样我就可以开始获取真实的股票数据,但我在VS 2017中遇到了困难。我尝试了install using vcpckg使用以下步骤:
根据vcpkg文档,我现在应该可以简单地#include,但它找不到文件夹。如果我尝试包含vcpkg\packages\curl_x86\include和#include中的“include”目录,我就可以构建我的项目。我也可以访问一些类,但是如果我像这个例子中那样尝试设置curl_global_init(CURL_GLOBAL_DEFAULT),我会得到链接器错误。

mbyulnm0

mbyulnm01#

您已经使用vcpkg安装了x86版本的curl(这是vcpkg\packages\curl_x86\include中的x86)。您需要安装x64版本以匹配您的项目:
>vcpkg install curl:x64-windows

ajsxfq5m

ajsxfq5m2#

在2021年,在Windows 10上,使用当前的Visual Studio。vcpkg install curl[*]:x64-windows不工作。我得到一个BUILD_FAILED错误。vcpkg install curl对我来说确实有效,只需要30秒

相关问题