首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows cURL上用openSSL和nghttp2编译x64?

如何在Windows cURL上用openSSL和nghttp2编译x64?
EN

Stack Overflow用户
提问于 2017-10-27 19:00:46
回答 1查看 3.9K关注 0票数 4

这里有第一个问题,所以请原谅我:)在过去的3天里,我一直在网上努力想办法在我的windows机器上得到以下结果。

“cURL-V”输出示例

我已经为macOS和unix找到了很多东西,但在Windows中只找到了一些东西。我正在运行xampp,最终我试图让它通过cURL/PHP发送http/2请求。到目前为止,我收集到的是,我需要用一些库编译cURL,比如openssl (至少1.0.2)、启用http/2的libcurl和nghttp2。我觉得我很接近,但我只是错过了一些步骤。

我到目前为止所做的事:

  • 安装了mingw32、cmake和用于VisualStudio2017的构建工具
  • 下载nghttp2-1.27.0,并使用“cmake”和“cmake”获取5个文件: nghttp2.dll、.exp、.lik、.lib和.pdb
  • 下载curl-7.56.1.tar.gz (https://curl.haxx.se/download.html上的第一个)
  • 下载libssh2-1.8.0
  • 下载openssl-1.0.2l
  • 下载的zlib-1.2.11
  • 遵循Mingw32 on https://curl.haxx.se/docs/install.html的说明(但它一直给我错误“无法找到openSSL包”)
  • 我在某个地方读到需要用‘--带有- NGHTTP2 2--前缀-- NGHTTP2文件夹的位置’标记来编译NGHTTP2,所以我尝试了一些我认为可以工作的东西,但我不认为是这样的:‘2-前缀-NGHTTP2文件夹在这里的位置',然后是'cmake’。看起来它做了些什么,但是在curl-7.56.1/src中构建的cURL.exe除了libcurl没有别的东西。

如有任何建议或建议,将不胜感激!谢谢各位:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-29 18:41:35

好的,我终于能够在Windows上通过http/2支持构建Curl了。这就是对我起作用的,一步一步地:

  • 下载的"构建2017工具“可以从命令行构建(提供nmake和所需的Windows库和标头文件)
  • 下载了最新版本的curl,如上文所述(curl-7.56.1.tar.gz,也就是我在https://curl.haxx.se/download.html上的第一个版本)
  • c:/curl中提取它,所以我得到了c:/curl/curl-7.56.1
  • 阅读c:/curl/curl-7.56.1/winbuild内部的说明c:/curl/curl-7.56.1/winbuild,然后继续到http://windows.php.net/downloads/php-sdk/deps/下载我需要的4个库。我刚拿到了VC15 15/x86版本。
  • c:/curl/curl-7.56.1中创建一个名为"deps“的新文件夹
  • c:/curl/curl-7.56.1/deps中创建了以下3个文件夹:binlibinclude
  • 提取我刚才在相应的3个文件夹中下载的每个库
  • 打开VS 2017开发人员命令提示符
  • cd c:/curl/curl-7.56.1/winbuild
  • nmake -f Makefile.vc mode=dll WITH_DEVEL=c:/curl/curl-7.56.1/deps WITH_SSL=dll WITH_NGHTTP2=dll WITH_ZLIB=static WITH_SSH2=dll
  • 这将在c:\curl\curl-7.56.1\builds中的一个子文件夹中构建一个CURL可执行文件。
  • 当我第一次尝试运行CURL时,它出现了一个错误,表示缺少libssl-1_1.dlllibcrypto-1_1.dll,,所以我不得不将它们从c:\curl\curl-7.56.1\deps\bin复制到新构建的curl.exe所在的目录中。
  • 注意:由于zlib没有附带包含任何bin‘s的.dll文件夹,所以我理解为什么我必须用WITH_ZLIB=static标志将zlib标记为静态。我不明白的是,为什么我必须手动移动新目录中的openssl .dll。有什么想法吗?

谢谢丹尼尔给我指明了正确的方向。我甚至没有注意到/winbuild目录。

PPS:你可能知道,我90%的时间都不知道自己在做什么。大概是为什么我花了5天才弄明白的;)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46981784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档