Eli*_*red 9 c++ linker curl visual-studio-2017 vcpkg
*编辑:我按照这些步骤在64位机器上使用CURL工作(请参阅下面的原始问题):
首先安装vcpkg:
C:\Program FilesC:\Program Files\vcpkg.\bootstrap-vcpkg.batvcpkg integrate install然后使用vcpkg和Visual Studios 2017命令提示符安装cURL:
VS 2017 Command prompt并导航到vcpkg文件夹(其中vcpkg.exe)运行:( vcpkg install curl[*]:x64-windows注意这可能需要大约半小时才能下载并运行,如果它看起来像是"卡在"部件,请不要担心).
*编辑:以前我的指示说要运行vcpkg install curl:x64-windows但我[*]在@ i7clock的要求下添加了启用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);在请求之前放置代码(见下文).请注意,这只是必要的,因为我无法弄清楚如何使用卷曲来使用证书.我有一个关于这个问题的AS-的,但没有答案计算器后这里.以下是您可能需要尝试运行的其他一些步骤,但我最终发现它们没有必要:
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;
}
Run Code Online (Sandbox Code Playgroud)
*编辑:以下是我的旧问题在解决之前的其余解释:
我正在尝试使用cURL进行API调用,因此我可以开始获取实时库存数据,但是我遇到了在VS 2017中运行它的困难.我尝试使用vcpckg使用以下步骤进行安装:
根据vcpkg文档我现在应该能够#include,但它找不到该文件夹.如果我尝试从vcpkg\packages\curl_x86\include和#include中包含"include"目录,我可以构建我的项目.我也可以访问一些类,但如果我尝试设置curl_global_init(CURL_GLOBAL_DEFAULT),就像在这个例子中我得到链接器错误.
你已经用vcpkg安装了x86版本的curl(那是x86 vcpkg\packages\curl_x86\include).您需要安装x64版本以匹配您的项目:
>vcpkg install curl:x64-windows