Windows10,编译zlib 。
一、下载zlib
我下载的第一个,US(zlib.net).
我下载的是zlib-1.2.11,下载完解压出来即可。下边就开始编译吧。(包括动态库和静态库两种)
二、编译
1、打开VS2010的命令窗口,以管理员身份运行
2、切换到zlib/contrib/masmx86, 运行bld_ml32.bat。 如果是64位,请切换到zlib/contrib/masmx64, 运行bld_ml64.bat
3、32位运行之后,在这个文件夹里面,多生成两个 *.obj 文件。
4、zlib的vs sln解决方案文件可以在如下路径中找到:zlib-1.2.5/contrib/vstudio/vc10/zlibvc.sln,打开这个解决方案中包含6个工程。其中:
(1). zlibvc生成动态链接库zlibwapi.dll和对应的导入库zlibwapi.lib。右键此工程,直接生成。
结果 --->
(2). zlibstat生成静态链接库zlibstat.lib。 右键此工程,直接生成。
(3). testzlibdll测试生成的动态链接库zlibwapi.dll。 右键此工程,直接生成。
出现错误:2>LINK : fatal error LNK1104: 无法打开文件“x86\ZlibDllDebug\zlibwapi.lib”
成功1个,失败1个。
(4). testzlib测试生成的静态链接库zlibstat.lib。 右键此工程,直接生成。
(5). 最后我们在debug模式下编译整个解决方案。生成的dll和lib文件可在相应的文件夹中找到。
这里我们把静态库zlibstat.lib和动态库(zlibwapi.dll/zlibwapi.lib)以及zlib.h/zlibconf.h文件放在一个文件夹中。方便日后工程使用。
三、使用
下边介绍如何使用编译好的动态或是静态库。(假设项目工程已经建立完毕)
1. zlib静态库:zlibstat.lib
-
包含头文件
属性–C/C+±-常规–附加包含目录(添加包含.h文件的目录)
-
定义宏
属性–C/C+±-预处理器–预处理器定义:添加 ZLIB_WINAPI ASMV ASMINF
-
项目包含.lib文件所在的目录:
属性–链接器–常规–附加库目录
-
项目包含.lib文件
属性–链接器–输入–附加依赖项(libstat.lib)
-
项目代码中 #include “zlib.h”
编译生成.exe即可使用。
2. 动态库 zlibwapi.lib
-
包含头文件
属性–C/C+±-常规–附加包含目录(添加包含.h的目录)
-
定义宏
属性–C/C+±-预处理器–预处理器定义:添加 ZLIB_WINAPI
-
项目包含.lib文件所在的目录:
属性–链接器–常规–附加库目录
-
项目包含.lib文件
属性–链接器–输入–附加依赖项(zlibwapi.lib)
-
项目代码中 #include “zlib.h”
编译生成.exe文件需要.dll文件支持(动态加载)
参考链接:https://blog.csdn.net/u011740322/article/details/51207809