用vs2017编译zlib源码并完成编译批处理脚本

编译zlib

编译32位

1
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat



编译64位

1
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
1
nmake -f win32/Makefifile.msc



VS 2017的 x64_x86 交叉工具命令提示符

image-20220107005147178

64位平台编译32位用这个工具



适用于 VS 2017 的 x64 本机工具命令提示

编译64位源码用这个工具

image-20220107005205464



适用于 VS 2017 的 x86_x64 兼容工具命令提示

用32位平台来编译64位源码

image-20220107005440939



打开VS 2017的 x64_x86 交叉工具命令提示符并且进入到zlib目录

image-20220107005557569

编译

1
nmake /f WIN32\Makefile.msc

image-20220107005748153



编译批处理脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo "开始编译zlib"
set VS="D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
set OUT=F:\libevent\out\vs2017_32\zlib
call %VS%
cd zlib-1.2.11
nmake /f win32\Makefile.msc clean
nmake /f win32\Makefile.msc
md %OUT%\lib
md %OUT%\bin
md %OUT%\include
copy /Y *.lib %OUT%\lib
copy /Y *.h %OUT%\include
copy /Y *.dll %OUT%\bin
copy /Y *.exe %OUT%\bin
@echo "zlib编译结束"
pause

1
set VS=				//自己VS 2017的 x64_x86 交叉工具命令提示符的路径

1
set OUT=			//输出文件的路径

1
call %VS%			//代表调用vcvarsamd64_x86.bat

1
nmake /f win32\Makefile.msc clean		//清理编译出来的文件

1
nmake /f win32\Makefile.msc			//编译

1
2
3
md %OUT%\lib						//创建lib目录
md %OUT%\bin //创建bin目录
md %OUT%\include //创建include目录

1
2
3
4
copy /Y *.lib %OUT%\lib				//不提示复制所有后缀为.lib的文件到%OUT%\lib目录
copy /Y *.h %OUT%\include //不提示复制所有后缀为.h的文件到%OUT%\include目录
copy /Y *.dll %OUT%\bin //不提示复制所有后缀为.dll的文件到%OUT%\bin目录
copy /Y *.exe %OUT%\bin //不提示复制所有后缀为.exe的文件到%OUT%\bin目录