*编辑:我按照这些步骤在64位计算机上使用CURL工作(请参阅下面的原始问题):
首先安装vcpkg:
C:\Program Files
C:\Program Files\vcpkg
.\bootstrap-vcpkg.bat
vcpkg integrate install
然后使用vcpkg和Visual Studios 2017命令提示符安装cURL:
VS 2017 Command prompt
并导航到vcpkg文件夹(vcpkg.exe
所在的位置)运行:vcpkg install curl[*]:x64-windows
(请注意,这可能需要大约半小时的时间才能下载并运行,如果它看起来像是"卡在"部件上,请不要担心)
*编辑:之前我的说明是运行vcpkg install curl:x64-windows
,但我在@ {7}}的@ {{@}时间点添加[*]
以启用sftp和scp协议。
完成此步骤后,您应检查以确保正确安装了卷曲。为此,您应该在VS 2017中创建一个新项目,并尝试包含#include curl/curl.h
而不添加任何其他包含目录。如果你不能这样做,那么你的curl安装出了问题。您应该删除curl(甚至可能是vcpkg文件夹并执行全新安装),直到您可以包含curl/curl.h
。
*重要提示:这只适用于在x64中使用x64调试器/编译的情况!如果您不能包含curl目录检查以确保您的调试设置为正确版本的Windows。
您可能还需要禁用SSL对等验证:
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
(见下文)。请注意,这只是必要的,因为我无法弄清楚如何获得使用curl的证书。关于此问题here,我有一篇尚未答复的stackoverflow帖子。以下是您可能需要尝试运行的其他一些步骤,但我最终发现它们没有必要:
CURL_STATICLIB
放置在属性中 - > C / C ++ - >预处理器 - >预处理器定义这是我现在正在使用的代码:
#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,但它无法找到该文件夹。如果我尝试包括" include"来自vcpkg \ packages \ curl_x86 \ include和#include的目录我可以构建我的项目。我也可以访问一些类,但如果我尝试设置curl_global_init(CURL_GLOBAL_DEFAULT),就像在这个例子中我得到链接器错误。
答案 0 :(得分:6)
您已经使用vcpkg安装了x86版本的curl(这是vcpkg\packages\curl_x86\include
中的x86)。您需要安装x64版本以匹配您的项目:
>vcpkg install curl:x64-windows