1,准备
Perl工具
https://www.jb51.net/softs/253103.html
openssl 1.0.2u 一份源码
https://www.openssl.org/source/old/1.0.2/
openssl 编译好一份的2进制
https://windows.php.net/downloads/php-sdk/deps/archives/vc11/x64/openssl-1.0.2m-vc11-x64.zip
2,安装Perl
3,编译OPENSSL
使用命令行 curl-7_80_0\projects\build-openssl.bat vc9 x64 release d:\project\openssl-1.0.2u
这个脚本信赖Perl
编译生成的目录下2个lib文件按下面结构放置在lib中 openssl-1.0.2u\build\Win32\VC9\LIB Release
include和bin文件夹参照那份编译好的,头文件直接使用那里面的
somedirectory\
|_curl-7_80_0
| |_winbuild
|
|_deps
|_ lib
|_ include
|_ bin
4,编译libcurl
先打开VS2008的x64命令行提示工具,再使用命令切换目录到curl-7_80_0\winbuild
执行 nmake /f Makefile.vc mode=static VC=9 ENABLE_IDN=no ENABLE_IPV6=yes ENABLE_SCHANNEL=no WITH_SSL=static
编译目标生成在builds里面,bin下有curl.exe可以直接测试,lib下是静态库
5,使用静态库
预处理定义增加:CURL_STATICLIB
附加信赖项:ws2_32.lib wldap32.lib Crypt32.lib 还有openssl的2个lib
还遇到了一个问题:链接时很多重定义,下面第4行是解决重定义的
#pragma comment(lib,"curl/lib/libcurl_a.lib")
#pragma comment(lib,"curl/lib/libeay32.lib")
#pragma comment(lib,"curl/lib/ssleay32.lib")
#pragma comment(linker, "/NODEFAULTLIB:libcmt.lib")