前言
编译libcurl是一件繁琐但并不复杂的事情,因为需要多个库的配合。编译前务必提前准备好zlib库、openssl库和libssh2库。
编译前准备
编译zlib
- 编译zlib(32位)
1.下载zlib源码,笔者下载的是zlib 1.2.11。
2.将压缩包解压到指定路径(如E:/zlib-1.2.11)。
3.打开VS2015 x86 本机工具命令提示符。
4.切换到E:/zlib-1.2.11\contrib\masmx86目录,执行bld_ml32.bat文件,执行完后会产生4个文件,分别为:inffas32.lst、match686.lst、inffas32.obj和match686.obj。
5.将上一步产生的inffas32.obj和match686.obj文件复制到根目录下(E:/zlib-1.2.11),将VS2015命令提示符目录切换到根目录(E:/zlib-1.2.11),执行nmake命令。待编译成功完成,就会在根目录下(E:/zlib-1.2.11)生成zlib.lib和zlib1.dll文件。nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"
- 编译zlib(64位)
1.下载zlib源码,笔者下载的是zlib-1.2.11。
2.将压缩包解压到指定路径(如E:/zlib-1.2.11)。
3.打开VS2015 x64 本机工具命令提示符。
4.切换到E:/zlib-1.2.11\contrib\masmx64目录,执行bld_ml64.bat文件,执行完后会产生4个文件,分别为:inffasx64.lst、gvmat64.lst、inffasx64.obj和gvmat64.obj。
5.将上一步产生的inffasx64.obj和gvmat64.obj文件复制到根目录下(E:/zlib-1.2.11),将VS2015命令提示符目录切换到根目录(E:/zlib-1.2.11),执行nmake命令。待编译成功完成,就会在根目录下(E:/zlib-1.2.11)生成zlib.lib和zlib1.dll文件。nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffasx64.obj gvmat64.obj"
编译openssl
1.准备工作
- 下载安装perl。下载安装ActivePerl或StrawbarryPerl。
- 下载openssl,笔者下载的是openssl-1.0.2l。
2.设置VC编译环境
- 编译32位openssl
1)打开VS2015 x86 本机工具命令提示符,执行以下命令切换目录。
2)执行.bat文件cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
vcvars32.bat
- 编译64位openssl
1)打开VS2015 x64 本机工具命令提示符,执行以下命令切换目录。
2)执行.bat文件cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
vcvars64.bat
3.编译openssl
-
编译32位openssl
1)切换VS2015 x86 本机工具命令提示符目录到openssl解压目录。cd E:\openssl-1.0.2l
2)配置输出目录和编译类型 (类型见备注)
perl Configure [类型] no-asm --prefix="[输出目录]"
3)配置模式
执行命令ms\do_nasm
4)编译openssl动态链接库
nmake -f ms\ntdll.mak nmake -f ms\ntdll.mak test nmake -f ms\ntdll.mak install
备注:编译32位openssl可选的编译类型
- debug-VC-WIN32 编译32位debug版本
- VC-WIN32 编译32位release版本
-
编译64位openssl
1)切换VS2015 x64 本机工具命令提示符目录到openssl解压目录。cd E:\openssl-1.0.2l
2)配置输出目录和编译类型 (类型见备注)
perl Configure [类型] no-asm --prefix="[输出目录]"
3)配置模式
执行命令ms\do_win64a.bat
4)编译openssl动态链接库
nmake -f ms\ntdll.mak nmake -f ms\ntdll.mak test nmake -f ms\ntdll.mak install
备注:编译64位openssl可选的编译类型
- debug-VC-WIN64A 编译64位debug版本
- VC-WIN64A 编译64位release版本
编译libssh2
1.下载libssh2并解压到指定目录(如E:\libssh2-1.8.0),笔者下载的是libssh2-1.8.0。
2.打开E:\libssh2-1.8.0\win32目录下的libssh2.dsw进行编译,编译成功后生成libssh2.lib和libssh2.dll。(编译libssh2需要openssl)
编译libcurl
1.下载curl并解压(如E:\curl-7.56.0)。笔者下载的是curl-7.56.0。
2.打开E:\curl-7.56.0\projects\Windows\VC14目录下的curl-all.sln,添加openssl和libssh2的头文件目录到包含目录,添加openssl和libssh2的库文件目录到库目录,然后右击libcurl项目根据需求进行编译。成功编译后,在E:\curl-7.56.0\build目录下生成libcurl.lib和libcurl.dll。