一、zlib库的编译
首先要下载这个库,我下载的是zlib-1.2.8,下载完解压出来即可。下边就开始编译吧。(包括动态库和静态库两种)
1. 首先开启VS2013的Command Prompt (32bit),也就是命令提示窗口。
2. 进入到zlib-1.2.5/contrib/masmx86目录,执行bld_ml32.bat。(同理,64位的电脑进入masmx64目录,执行bld_ml64.bat)。这一步运行bld_ml32批处理文件,里面调用ml命令编译inffas32.asm和match686.asm,生成inffas32.obj和match686.obj(生成在本目录下)。这两个文件在zlibvc中用到。
3. zlib的vs sln解决方案文件可以在如下路径中找到:zlib-1.2.5/contrib/vstudio/vc11/zlibvc.sln,打开
这个解决方案中包含6个工程。其中:
(1). zlibvc生成动态链接库zlibwapi.dll和对应的导入库zlibwapi.lib
(2). zlibstat生成静态链接库zlibstat.lib
(3). testzlibdll测试生成的动态链接库zlibwapi.dll
(4). testzlib测试生成的静态链接库zlibstat.lib
最后我们在debug模式下编译整个解决方案。生成的dll和lib文件可在相应的文件夹中找到。
下边介绍如何使用编译好的动态或是静态库。(假设项目工程已经建立完毕)
首先要下载这个库,我下载的是zlib-1.2.8,下载完解压出来即可。下边就开始编译吧。(包括动态库和静态库两种)
1. 首先开启VS2013的Command Prompt (32bit),也就是命令提示窗口。
2. 进入到zlib-1.2.5/contrib/masmx86目录,执行bld_ml32.bat。(同理,64位的电脑进入masmx64目录,执行bld_ml64.bat)。这一步运行bld_ml32批处理文件,里面调用ml命令编译inffas32.asm和match686.asm,生成inffas32.obj和match686.obj(生成在本目录下)。这两个文件在zlibvc中用到。
3. zlib的vs sln解决方案文件可以在如下路径中找到:zlib-1.2.5/contrib/vstudio/vc11/zlibvc.sln,打开
这个解决方案中包含6个工程。其中:
(1). zlibvc生成动态链接库zlibwapi.dll和对应的导入库zlibwapi.lib
(2). zlibstat生成静态链接库zlibstat.lib
(3). testzlibdll测试生成的动态链接库zlibwapi.dll
(4). testzlib测试生成的静态链接库zlibstat.lib
最后我们在debug模式下编译整个解决方案。生成的dll和lib文件可在相应的文件夹中找到。
下边介绍如何使用编译好的动态或是静态库。(假设项目工程已经建立完毕)
这里我们把静态库zlibstat.lib和动态库(zlibwapi.dll/zlibwapi.lib)以及zlib.h/zlibconf.h文件放在一个文件夹中。
1.编译步骤
a.先用vs2015命令行执行下bld_ml32.bat批处理
b.将inffas32.obj和match686.obj复制到压缩目录
c.打开zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln编译即可
2.出现的问题和解决
1.error LNK2026: module unsafe for SAFESEH image
修改属性/linker/Advenced/Image has safe Exception Handles 为No
2.fatal error LNK1118: syntax error in ‘version’ statement
打开zlibvc.def文件VERSION 修改为1.28即可
相关链接:http://www.07net01.com/2015/08/902638.html
http://www.360doc.com/content/13/0311/09/3972394_270725627.shtml