编译不需要vc运行时的MT静态库版本的libcurl+ssl+zlib
三个库的目录放在同级目录下,以便对应本文的路径。
一定要使用VS2015 的 MSBuild 命令提示符,否则编译openssl可能会因为环境识别导致各种失败
zlib
优先把找到Makefile.msc的
CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)
这一行,改为MD改为MT
使用VS2015 的 MSBuild 命令提示符工具,cd到zlib-1.2.8目录,使用命令编译
nmake -f win32/Makefile.msc OBJA="inffast.obj"
openssl
安装ActivePerl,自行搜索下载,一路Next安装完成
打开ms\nt.mak文件
修改为 CFLAG= /MT
使用VS2015 的 MSBuild 命令提示符,CD到openssl根目录,依次执行:
perl Configure VC-WIN32
ms\do_ms.bat
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat"
nmake -f ms/nt.mak
其他选项参考:
编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak
测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
安装动态库:
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
清除上次动态库的编译,以便重新编译:
nmake -f ms\ntdll.mak clean
清除上次静态库的编译,以便重新编译:
nmake -f ms\nt.mak clean
libcurl
进入libcurl根目录下的lib目录,新建一名为release_ssl_zlib.bat的批处理文件,其内容如下:
call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat"
set CFG=release-ssl-zlib
set RTLIBCFG=static
set OPENSSL_PATH=../../openssl-1.0.1u
set ZLIB_PATH=..\..\zlib-1.2.8
nmake -f Makefile.vc14
pause
路径根据自己设定的来写,如果是都在同级目录,那么就按照这样就行了。
执行批处理文件以后,在lib目录下的release-ssl-zlib目录中,会生成libcurl.lib静态库。
使用时需要Copy文件并引用
libcurl.lib
libeay32.lib
ssleay32.lib
zlib.lib
预处理器 CURL_STATICLIB
在vs2015引用会遇到问题
“链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的”
解决方法:
1.打开该项目的“属性页”对话框。
2.单击“链接器”文件夹。
3.单击“命令行”属性页。
4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。