作者:cr罗详青 | 来源:互联网 | 2023-01-11 11:19
这是有史以来的第一个问题,所以请允许我:)我过去三天一直在网上,试图找到一种在Windows机器上获得以下结果的方法。
我需要的'cURL -V'输出示例
我已经发现了很多用于macOS和Unix的东西,但是对于Windows却只有一点点。我正在运行xampp,最终我试图使它通过cURL / PHP发送http / 2请求。到目前为止,我所收集的是我需要使用某些库来编译cURL,例如openssl(至少1.0.2),启用了http / 2的libcurl和nghttp2。我觉得我已经很接近了,但是我只是缺少一些步骤。
到目前为止,我所做的是:
为Visual Studio 2017安装了诸如mingw32,cmake和构建工具之类的东西
下载nghttp2-1.27.0,并使用'cmake'和'cmake --build'获取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
在https://curl.haxx.se/docs/install.html上按照Mingw32的说明进行操作(但它始终提示我“无法找到openSSL软件包”)
我读到某个地方需要用'--with-nghttp2 --prefix- [此处的NGHTTP2文件夹位置]'标志来编译cURL,所以我尝试了一些我认为可行的方法,但是我认为它没有用: 'cmake --with-nghttp2 --prefix- [此处的NGHTTP2文件夹位置]。”,然后“ cmake install”。”,看起来好像做了些什么,但是在curl-7.56.1 / src /中内置的cURL.exe除了libcurl之外没有其他任何东西。
任何建议或指针将不胜感激!感谢大伙们 :)
1> Raimondo Pre..:
好的,我终于能够在具有http / 2支持的Windows上构建Curl。这是一步一步为我工作的方法:
下载了“ Visual Studio 2017的构建工具 ”,以便能够从命令行进行构建(提供nmake
和必需的Windows SDK库和标头过滤器)
如上所述下载了curl的最新版本(curl-7.56.1.tar.gz
,对我来说也是https://curl.haxx.se/download.html上的第一个)
提取到里面c:/curl
,所以我最终得到了c:/curl/curl-7.56.1
读指令BUILD.WINDOWS.txt内c:/curl/curl-7.56.1/winbuild
,并着手http://windows.php.net/downloads/php-sdk/deps/下载4个库,我需要的。我只是抓住了VC15 / x86版本。
在其中创建了一个名为“ deps”的新文件夹 c:/curl/curl-7.56.1
里面创建以下3个文件夹c:/curl/curl-7.56.1/deps
:bin
,lib
,和include
将我刚刚下载的每个库提取到相应的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
这将在以下子文件夹之一中构建CURL可执行文件 c:\curl\curl-7.56.1\builds
当我第一次尝试运行卷曲,这表明一个错误,说失踪的libssl-1_1.dll和libcrypto-1_1.dll,所以我不得不将它们从复制c:\curl\curl-7.56.1\deps\bin
到同一目录下新建curl.exe是
注意:由于zlib并未随附bin
包含任何的文件夹.dll
,因此我理解了为什么必须使用标志将zlib标记为静态WITH_ZLIB=static
。我不明白的是为什么我不得不在新目录中手动移动openssl .dll
。有什么想法吗?
PS:谢谢丹尼尔为我指出正确的方向。我什至没有注意到/winbuild
目录。
PPS:您可能会说,我不知道我90%的时间在做什么。大概是为什么我花了5天的时间才弄清楚;)