windows平台下编译curl支持https(curl命令可以测试https吗)
参看http://curl.haxx.se/download.html,curl有多个版本,会有是否包含ssl之分。如果需要使之支持https,就需要使用带ssl的版本。
在Windows的平台下会有多个选择,想省事的话就直接下载win32-msvc带ssl版的,加压后里面会有一些curl依赖的dll,比如libeay32.dll ssleay32.dll openldap.dll等,这就是需要的ssl,直接用这里面的curllib.dll就可以支持https了。
当然,基于其他一些原因(比如不放心别人编好的版),也可以自己用源码编。
编译步骤如下:
1.下载http://curl.haxx.se/download/curl-7.25.0.zip,并解压到某处,我解压到F:selfcurl,则路径就是F:selfcurlcurl-7.25.0
2.因为需要openssl和zlib,则分别在http://www.openssl.org/source/下载openssl(我下的是openssl-0.9.8r),解压到f:,则路径是F:openssl-0.9.8r;到http://zlib.net/zlib126.zip下载zlib,解压到某处,我的是F: ewzlib,则路径就是F: ewzlibzlib-1.2.6。
3.开始编之前,需要准备几个工具,打开vs的命令提示行,分别cl回车,输入nmake -v 回车,如果有任意一个说不是内部或外部命令之类的,就需要配一些环境,否则可跳过这部分继续看4。
3.1添加环境变量:在环境变量的系统变量中添加INCLUDE项,值是D:Program FilesMicrosoft Visual Studio 8VCinclude;D:Program FilesMicrosoft SDKsWindowsv7.1Include。再添加LIB项,值是D:Program FilesMicrosoft Visual Studio 8VClib;D:Program FilesMicrosoft SDKsWindowsv7.1Lib。再在path项中添加D:Program FilesMicrosoft Visual Studio 8Common7Tools;D:Program FilesMicrosoft Visual Studio 8Common7IDE;D:Program FilesMicrosoft Visual Studio 8VCin;
3.2到D:Program FilesMicrosoft Visual Studio 8Common7Tools执行一下vsvars32.bat
3.3再次尝试cl回车和nmake -v回车,如果还不行,就注销一下系统,然后就可以了
4.编译zlib
可以首先查看一下F: ewzlibzlib-1.2.6win32目录下makefile.msc文件,有一项SHAREDLIB = zlib1.dll,这个名字很蛋疼,说明编出来的dll叫zlib1.dll,为毛要加个1啊!看着不爽的可以把它改成zlib.dll,保存退出。然后打开vs命令行工具,进入zlib的目录,我这里就是F: ewzlibzlib-1.2.6,执行nmake -f win32/makefile.msc,执行完后目录下就有了zlib.lib和zlib.dll
5.编译openssl
这是最蛋疼的一块,网上有很多说明,按照他们的说明,我没有一次成功的。其中无数次尝试遇到的问题这里说一下:
5.1安装配置ActivePerl,安装后在CMD中试一下perl -v命令,如果说不是内部外部命令这些,配置一下环境变量,比如安装到d:perl,则把d:perlin添加到环境变量中的系统变量中的path中,然后注销一下系统,应该就可以了
5.2打开vs命令提示行,进到openssl解压后的目录,F:openssl-0.9.8r。执行perl configure vc-win32,他执行一段后,如果没错误,再执行msdo_ms,然后他执行一段,如果没错,再执行nmake -f ms tdll.mak,执行后开始编,不过我这编的时候会出错,网上说的一些解决方案也都对应不上。只能放弃
6.编curl,因为curl必须要使用zlib和openssl,但是缺少openssl的dll和lib,恰巧我原来的代码里有openssl的dll和lib,就决定替代一把试试,于是把libeay32.dll libeay32.lib ssleay32.dll ssleay32.lib放到F:openssl-0.9.8rout32dll中。在F:selfcurlcurl-7.25.0lib中建一个builddebug.bat,内容如下:
call "D:Program FilesMicrosoft Visual Studio 8VCinvcvars32.bat"
set CFG=debug-dll-ssl-dll-zlib-dll
set OPENSSL_PATH=F:openssl-0.9.8r
set ZLIB_PATH=F:
ewzlibzlib-1.2.6
nmake -f Makefile.vc8
上面分别设置OPENSSL的路径,ZLIB的路径,和编译器号,我的是vs2005
然后运行这个bat就可以编出libcurld.dll和libcurld_imp.lib
同理改成set CFG=release-dll-ssl-dll-zlib-dll就可以编出release版
openssl的几个dll和lib在下面可以下载到
http://download.csdn.net/detail/zp373860147/4261965、
另外几点,如果一些版本编不过,可以尝试一下较早的版本。