nmake、cmake、Visual Studio编译zlib

开篇提示:本文为本人原创,本文欢迎转载,但必须注明本文出处,例如:

“该文引用自 CruiseYoung的:“nmake、cmake、Visual Studio编译zlib”
http://blog.csdn.net/fksec/article/details/25906419” 
否则说明阁下愿意支付以100元人民币每字计的稿费,敬请留意。

 

1 下载软件包

下载zlib:http://www.zlib.net/

2 准备工作

2.1 解压“zlib128.zip”到当前文件夹,在3.1或4.2的命令窗口中用以下命令切换到“zlib-1.2.8”目录: 
cd /d E:\Projects\compile\zlib-1.2.8 
2.2 阅读:
“zlib-1.2.8\contrib\vstudio\readme.txt”
“zlib-1.2.8\win32\Makefile.msc”
2.3 将“zlib-1.2.8\win32\Makefile.msc”中的"TOP = ."改为"TOP = ..";去掉“CFLAGS”中的“-MD”选项;
2.4 将“zlib-1.2.8\win32\Makefile.msc”文件复制一份,并更名为“zlib-1.2.8\win32\Makefile_release.msc”;
2.5 将“zlib-1.2.8\win32\Makefile_release.msc”文件内,去掉“CFLAGS”中的“-Oy-”选项;
2.6 将“zlib-1.2.8\win32\Makefile.msc”文件内“LDFLAGS = -nologo -debug -incremental:no -opt:ref”中的“-incremental:no -opt:ref”去掉;

3 x86位编译(use ASM code, x86)

3.1 编译环境:点击“开始”-->"所有程序"-->"Visual Studio 2013"-->"Visual Studio Tools"-->"VS2013 x86 本机工具命令提示" 
3.2 Debug编译,请依次输入以下命令:
 
mkdir bld_debug_x86
cd bld_debug_x86
nmake -f ../win32/Makefile.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" all
nmake -f ../win32/Makefile.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" test
nmake -f ../win32/Makefile.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" testdll

set ZLIB_ROOT_DIR=D:\comm\zlib\debug_x86
mkdir %ZLIB_ROOT_DIR%

mkdir %ZLIB_ROOT_DIR%\bin
copy /Y zlib1.dll %ZLIB_ROOT_DIR%\bin

set ZLIB_INCLUDE_DIRS=%ZLIB_ROOT_DIR%\include
mkdir %ZLIB_INCLUDE_DIRS%
copy /Y ..\zconf.h %ZLIB_INCLUDE_DIRS%
copy /Y ..\zlib.h %ZLIB_INCLUDE_DIRS%

set ZLIB_LIBRARY=%ZLIB_ROOT_DIR%\lib
mkdir %ZLIB_LIBRARY%
copy /Y zdll.lib %ZLIB_LIBRARY%
copy /Y zlib1.pdb %ZLIB_LIBRARY%
copy /Y zlib.lib %ZLIB_LIBRARY%
copy /Y zlib.pdb %ZLIB_LIBRARY%

mkdir %ZLIB_ROOT_DIR%\share\man\man3
copy /Y ..\zlib.3 %ZLIB_ROOT_DIR%\share\man\man3

mkdir %ZLIB_ROOT_DIR%\share\pkgconfig
copy /Y ..\zlib.pc.in %ZLIB_ROOT_DIR%\share\pkgconfig\zlib.pc

nmake -f ../win32/Makefile.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" clean
cd..

3.3 Release编译,请依次输入以下命令:
 
mkdir bld_release_x86  
cd bld_release_x86  
nmake -f ../win32/Makefile_release.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" all
nmake -f ../win32/Makefile_release.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" test
nmake -f ../win32/Makefile_release.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" testdll

set ZLIB_ROOT_DIR=D:\comm\zlib\release_x86
mkdir %ZLIB_ROOT_DIR%

mkdir %ZLIB_ROOT_DIR%\bin
copy /Y zlib1.dll %ZLIB_ROOT_DIR%\bin

set ZLIB_INCLUDE_DIRS=%ZLIB_ROOT_DIR%\include
mkdir %ZLIB_INCLUDE_DIRS%
copy /Y ..\zconf.h %ZLIB_INCLUDE_DIRS%
copy /Y ..\zlib.h %ZLIB_INCLUDE_DIRS%

set ZLIB_LIBRARY=%ZLIB_ROOT_DIR%\lib
mkdir %ZLIB_LIBRARY%
copy /Y zdll.lib %ZLIB_LIBRARY%
copy /Y zlib1.pdb %ZLIB_LIBRARY%
copy /Y zlib.lib %ZLIB_LIBRARY%
copy /Y zlib.pdb %ZLIB_LIBRARY%

mkdir %ZLIB_ROOT_DIR%\share\man\man3
copy /Y ..\zlib.3 %ZLIB_ROOT_DIR%\share\man\man3

mkdir %ZLIB_ROOT_DIR%\share\pkgconfig
copy /Y ..\zlib.pc.in %ZLIB_ROOT_DIR%\share\pkgconfig\zlib.pc

nmake -f ../win32/Makefile_release.msc LOC="-DASMV -DASMINF -I.." OBJA="inffas32.obj match686.obj" clean
cd..

4 x64位编译(use ASM code, x64)

4.1 编译环境:点击“开始”-->"所有程序"-->"Visual Studio 2013"-->"Visual Studio Tools"-->"VS2013 x64 本机工具命令提示" 
4.2 Debug编译,请依次输入以下命令:
 
mkdir bld_debug_x64
cd bld_debug_x64
nmake -f ../win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" all
nmake -f ../win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" test
nmake -f ../win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" testdll

set ZLIB_ROOT_DIR=D:\comm\zlib\debug_x64
mkdir %ZLIB_ROOT_DIR%

mkdir %ZLIB_ROOT_DIR%\bin
copy /Y zlib1.dll %ZLIB_ROOT_DIR%\bin

set ZLIB_INCLUDE_DIRS=%ZLIB_ROOT_DIR%\include
mkdir %ZLIB_INCLUDE_DIRS%
copy /Y ..\zconf.h %ZLIB_INCLUDE_DIRS%
copy /Y ..\zlib.h %ZLIB_INCLUDE_DIRS%

set ZLIB_LIBRARY=%ZLIB_ROOT_DIR%\lib
mkdir %ZLIB_LIBRARY%
copy /Y zdll.lib %ZLIB_LIBRARY%
copy /Y zlib1.pdb %ZLIB_LIBRARY%
copy /Y zlib.lib %ZLIB_LIBRARY%
copy /Y zlib.pdb %ZLIB_LIBRARY%

mkdir %ZLIB_ROOT_DIR%\share\man\man3
copy /Y ..\zlib.3 %ZLIB_ROOT_DIR%\share\man\man3

mkdir %ZLIB_ROOT_DIR%\share\pkgconfig
copy /Y ..\zlib.pc.in %ZLIB_ROOT_DIR%\share\pkgconfig\zlib.pc

nmake -f ../win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" clean
cd..

4.3 Release编译,请依次输入以下命令:
 
mkdir bld_release_x64  
cd bld_release_x64  
nmake -f ../win32/Makefile_release.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" all
nmake -f ../win32/Makefile_release.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" test
nmake -f ../win32/Makefile_release.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" testdll

mkdir D:\comm
mkdir D:\comm\zlib
mkdir D:\comm\zlib\release_x64

mkdir D:\comm\zlib\release_x64\bin
copy /Y zlib1.dll D:\comm\zlib\release_x64\bin

mkdir D:\comm\zlib\release_x64\include
copy /Y ..\zconf.h D:\comm\zlib\release_x64\include
copy /Y ..\zlib.h D:\comm\zlib\release_x64\include

mkdir D:\comm\zlib\release_x64\lib
copy /Y zdll.lib D:\comm\zlib\release_x64\lib
copy /Y zlib1.pdb D:\comm\zlib\release_x64\lib
copy /Y zlib.lib D:\comm\zlib\release_x64\lib
copy /Y zlib.pdb D:\comm\zlib\release_x64\lib

mkdir D:\comm\zlib\release_x64\share
mkdir D:\comm\zlib\release_x64\share\man
mkdir D:\comm\zlib\release_x64\share\man\man3
copy /Y ..\zlib.3 D:\comm\zlib\release_x64\share\man\man3

mkdir D:\comm\zlib\release_x64\share\pkgconfig
copy /Y ..\zlib.pc.in D:\comm\zlib\release_x64\share\pkgconfig\zlib.pc

nmake -f ../win32/Makefile_release.msc AS=ml64 LOC="-DASMV -DASMINF -I.." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" clean
cd..

5 Visual Studio编译“zlib”

5.1 打开“zlib-1.2.8\contrib\vstudio”目录;
5.2 “Visual Studio 2008”到“Visual Studio 2012”已经有对应的工程;
5.3 “Visual Studio 2013”及以后的VS版本:打开“zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln”将所有工程升级到当前版本;

6 “cmake”编译“zlib”(以x64平台为例)

6.1 编译环境:点击“开始”-->"所有程序"-->"Visual Studio 2013"-->"Visual Studio Tools"-->"VS2013 x64 本机工具命令提示" 打开命令窗口;
6.2 解压“zlib128.zip”到当前文件夹,用以下命令切换到“zlib-1.2.8”目录: 
cd /d E:\Projects\compile\zlib-1.2.8
6.3 Debug编译,请依次输入以下命令:
mkdir bld_debug_x64_cmake  
cd bld_debug_x64_cmake    
cmake .. -G "Visual Studio 12 2013 Win64" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=D:\comm\zlib\debug_x64_cmake
devenv zlib.sln /build Debug /out logfile.txt
cmake --build . --target INSTALL --config Debug 
如要重新编译,则先输入以下命令:
del CMakeCache.txt  
devenv zlib.sln /clean Debug
cd..
6.4 Release编译,请依次输入以下命令:
mkdir bld_release_x64_cmake  
cd bld_release_x64_cmake
cmake .. -G "Visual Studio 12 2013 Win64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:\comm\zlib\release_x64_cmake
devenv zlib.sln /build Release /out logfile.txt
cmake --build . --target INSTALL --config Release 
如要重新编译,则先输入以下命令:
del CMakeCache.txt  
devenv zlib.sln /clean Release
cd..
6.5 “MinSizeRel”、“RelWithDebInfo”版本的编译与“6.3”和“6.4”类似;

7 参考文章“cmake”编译“zlib”

见:Windows上编译zlib - Len3d - 博客园
http://www.cnblogs.com/len3d/archive/2013/07/19/3201054.html

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值