1、安装ActivePerl(下载地址)
2、安装nasm(下载地址)
3、下载openssl的源代码(下载地址)
4、下载curl的源代码(下载地址)
5、将以下脚本内容另存为bat文件:
1 | set SOURCE_PATH=D:\projects\openssl-1.1.1b |
详细可参考openssl源代码目录下INSTALL
中的Configuration Options
6、按实际情况修改SOURCE_PATH
/PREFIX
/BUILD_CONFIG
/INSTALL_VCENV
四个变量的值,其中:SOURCE_PATH
:openssl的源代码所在目录PREFIX
:编译openssl生成的文件存放的目录BUILD_CONFIG
:编译配置,有以下选项可选:VC-WIN64A
/debug-VC-WIN64A
/debug-VC-WIN32
/VC-WIN32
;INSTALL_VCENV
:VS的64位编译环境配置bat文件路径(如果是编译32位,则需改为vcvars32.bat
)
7、执行该bat,待编译完成后,在PREFIX
指定的目录中可找到生成的文件列表。
以VC-WIN64A
(64位release)为例,编译完成后在生成文件目录下的lib目录中可找到相应的lib文件(这里是D:\projects\openssl-x64\lib
),dll文件则可在bin目录中找到(这里是D:\projects\openssl-x64\bin
)
8、根据curl源代码目录下的winbuild/BUILD.WINDOWS.txt
文件描述,将openssl生成的文件转移到curl源代码目录上一层下的deps中:
somedirectory\
|_curl-src
| |_winbuild
|
|deps
| lib
| include
| bin
9、打开VS的本机工具命令提示(以VS2017为例,x86为x86 Native Tools Command Prompt for VS 2017
,x64为x64 Native Tools Command Prompt for VS 2017
),之后切换到libcurl源代码目录下的winbuild目录,以D:\projects\curl-7.64.0
为例:
1 | CD /D D:\projects\curl-7.64.0\winbuild |
10、根据winbuild/BUILD.WINDOWS.txt
文件描述,执行nmake命令。以编译64位静态库为例:
1 | nmake /f Makefile.vc mode=static VC=15 WITH_SSL=static MACHINE=x64 DEBUG=no |
执行完成后,在curl源代码目录下的builds\libcurl-vc15-x64-release-static-ssl-static-ipv6-sspi
目录中可以找到生成的文件列表。
11、新建一个控制台项目用于测试,测试代码如下:
1 |
|
12、项目配置修改:
添加curl生成文件目录下的include目录到测试项目的附加包含目录(
D:\projects\curl-7.64.0\builds\libcurl-vc15-x64-release-static-ssl-static-ipv6-sspi\include
)添加curl生成文件目录下的lib目录(
D:\projects\curl-7.64.0\builds\libcurl-vc15-x64-release-static-ssl-static-ipv6-sspi\lib
)和openssl生成文件目录下的lib目录(D:\projects\openssl-x64\lib
)到测试项目的附加库目录- 修改附加依赖项,添加以下lib文件:
wldap32.lib;libcrypto.lib;libssl.lib;libcurl_a.lib;Normaliz.lib;ws2_32.lib;crypt32.lib;
- 预处理器添加
CURL_STATICLIB
13、编译项目并运行,能打印出网页源代码则说明测试成功。
参考: