*编辑:我让CURL在64位机器上的VS 2017中执行以下步骤(原始问题见下文):
首先安装vcpkg:
-
克隆
vcpkg
将gitbash用于
C:\Program Files
-
在命令提示下导航到
C:\Program Files\vcpkg
-
在命令提示符下运行:
.\bootstrap-vcpkg.bat
-
在命令提示符下运行:
vcpkg integrate install
然后使用vcpkg和Visual Studio 2017命令提示符安装cURL:
-
打开a
VS 2017 Command prompt
然后导航到vcpkg文件夹(其中
vcpkg.exe
is)
-
运行时间:
vcpkg install curl[*]:x64-windows
(请注意,下载和运行可能需要大约半个小时,如果它看起来像是“卡在”零件上,请不要担心)。
*编辑:之前我的指示是运行
vcpkg install curl:x64-windows
但我在
[*]
应@i7clock的要求,启用sftp和scp协议。
-
完成此步骤后,应检查以确保curl安装正确。为此,您应该在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才有必要。关于这个问题,我有一个尚未回复的stackoverflow帖子
here
.
以下是您可能需要尝试运行的其他一些步骤,但我最终发现它们不是必需的:
-
导航到vcpkg\packages\curl\u x64-windows\lib以查找libcurl。lib文件。
-
包括libcurl的路径。属性下其他库目录中的库->连接器
-
包括libcurl。链接器下其他依赖项中的lib->输入->附加依赖项
-
位置
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文档,我现在应该可以简单地#包含,但它找不到文件夹。如果我尝试从vcpkg\packages\curl\u x86\include和#include中包含“include”目录,我可以构建我的项目。我也可以访问一些类,但如果我尝试设置curl\u global\u init(curl\u global\u DEFAULT),如本例所示,我会遇到链接器错误。